我正在使用Microsoft SQL Server 2000,并且需要将我的时间列转换为24小时时间,而不仅仅是上午9:30,下午12:30等。试图对这一列进行排序,我认为它不起作用,因为它只是在数字上看待事物,而不是时间。我认为我需要的功能可以用FORMAT(Time,HH:mm:ss)来完成,但这似乎不是SQL Server中的一个功能,所以我现在卡住了。在SQL Server中将时间转换为24小时时间
回答
这是要转换现有列的值还是只获取当前时间? – gdawgrancid
@gdawgrancid:将GETDATE更改为您的值。如果该值不是日期时间,则CAST先到日期时间。 – gbn
@gdawgrancid将日期时间转换为格式108,并获得最后5个字符... –
您也可以尝试这一个,
select CONVERT(time, CONVERT(varchar,CONVERT(date, getdate()))+ ' 02:24 PM', 120)
上面的查询将返回14:24:00.0000000
如果你想只在部分时间忽略毫秒,
select convert(varchar(8),CONVERT(time, CONVERT(varchar,CONVERT(date, getdate()))+ ' 02:24 PM', 120))
我在SQL 2008中测试了以上,它工作正常。
我第一次发贴!我必须从M/D/YYYY h:mm:ss AM/PM转换为日期时间。请注意我的本地时间是DD-MM-YYYY,所以我必须在转换为日期时间之前以该格式进行转换。要转换的字段名称是表N_IsaacForm中的“Valeur”。这里是我做到了在SQL 2008:
select NIF.Valeur, CASE WHEN CHARINDEX('PM',NIF.Valeur) = 0
THEN CONVERT(datetime,substring(NIF.Valeur, P2.Pos + 1, P3.Pos - P2.Pos - 1) + '-'
+ RIGHT('0' + substring(NIF.Valeur, P3.Pos + 1, P4.Pos - P3.Pos - 3),8) + '-'
+ RIGHT('0' + substring(NIF.Valeur, P1.Pos + 1, P2.Pos - P1.Pos - 1),2) + ' '
+ RIGHT('0' + substring(NIF.Valeur, 1, P1.Pos-1),2))
--add 12 hours if PM
ELSE DATEADD(hour,12,CONVERT(datetime,substring(NIF.Valeur, P2.Pos + 1, P3.Pos - P2.Pos - 1) + '-'
+ RIGHT('0' + substring(NIF.Valeur, P3.Pos + 1, P4.Pos - P3.Pos - 3),8) + '-'
+ RIGHT('0' + substring(NIF.Valeur, P1.Pos + 1, P2.Pos - P1.Pos - 1),2) + ' '
+ RIGHT('0' + substring(NIF.Valeur, 1, P1.Pos-1),2)))
END
FROM N_IsaacForm AS NIF (nolock)
cross apply (select (charindex('/', NIF.Valeur))) as P1(Pos)
cross apply (select (charindex('/', NIF.Valeur, P1.Pos+1))) as P2(Pos)
cross apply (select (charindex(' ', NIF.Valeur, P2.Pos+1))) as P3(Pos)
cross apply (select (charindex('M', NIF.Valeur, P3.Pos+1))) as P4(Pos)
WHERE CHARINDEX('M',NIF.Valeur) > 0 --(I had other values in the table with proper format)
你只需要改变元素的顺序来设置特定的本地时间。
结果获得
二零一五年八月二十零日上午01点11分31秒---> 2015年8月20日01:11:31.000
2015年8月19日10: 37:32 PM ---> 2015-08-19 22:37:32.000
10/7/2015 8:51:37 PM ---> 2015-10-07 20:51:37000
9/8/2015 3:27:17 PM ---> 2015-09-08 15:27:17.000
希望它可以帮助别人!我在这个网站上找到了很多帮助!
- 1. 使用SQL Server将24小时时间字符串转换为日期时间
- 2. 将伪24小时时钟时间转换为12小时时钟时间
- 3. 在Oracle中将24小时时间转换为12小时时间
- 4. 如何在PHP中将12小时时间转换为24小时制时间?
- 5. SQL Server中12小时时钟转换为24小时时钟
- 6. 如何将j2me中的12小时时间转换为24小时时间?
- 7. 从excel中将12小时时间转换为24小时时间
- 8. 将时间字符串转换为24小时时间仅作为时间
- 9. 将12小时时间格式转换为24小时整数?
- 10. 使用Java将24小时时间转换为12小时时间
- 11. 在Obj-C中将24小时转换为12h时间格式
- 12. 如何将3位24小时制时间转换为12小时制时间?
- 13. 如何将SQL Server时间转换为SQL中的IST时间?
- 14. 的Java:转换12小时时间至24小时的时间
- 15. 转换的时间间隔为在SQL Server十进制小时
- 16. 将2个24小时的时差转换为时间
- 17. 转换24小时格式的日期时间为varchar SQL Server 2008中
- 18. 将工作时间换算转换为24小时的代码?
- 19. 在Ruby中将12小时时间转换为24小时格式
- 20. 在XSLT中将24小时制时间转换为12小时制
- 21. 如何将SQL Server 2008中的varchar时间转换为时间
- 22. SQL Server - 将数字转换为时间
- 23. 12小时时间转换为24小时的时间用正则表达式
- 24. 将24小时字符串值转换为时间跨度
- 25. 使用Javascript将时间转换为24小时格式
- 26. 将时间串转换为24小时格式
- 27. 将日期时间转换为24小时格式
- 28. 将12小时时间格式转换为24小时,如mysql中所示
- 29. 将时间输入从24小时转换为秒,然后再转换为24小时格式
- 30. 如何将日期时间转换为特定的24小时时间
演员('1:30 PM'时间)? –
如果该列的类型为DateTime,则排序应该是正确的。您看到的字符串只是底层时间的表示。 – Ray