我正在使用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