2014-10-06 54 views
-1

我有一個變量爲time(7),但它給了我的值如:'17:25'。我希望它是這種格式:'5:25 PM'。有沒有辦法做到這一點在2012年SQL沒有做這樣的事情:如何將時間(7)格式從24更改爲12?

DECLARE @aux NVARCHAR(8)='16:45:00' 
SELECT CONVERT(VARCHAR(15),CAST(@aux AS TIME),100) 

Code gotten from here

+1

即使你引述[這](HTTP ://stackoverflow.com/questions/11745958/sql-format-time-object-from-24-hour-to-12/11746597#11746597)頁面,你不認爲你的問題是相同的? – 2014-10-06 13:13:02

+0

格式化幾乎總是最好由您的表示層處理。是否有任何理由不利於您使用已發佈的解決方案? – GarethD 2014-10-06 13:14:08

+0

@GarethD - 我發現奇怪的是時間變量不允許時間格式不同。查看SQL 2012中是否有其他方法來執行此操作,但SQL Server的早期版本中沒有。 – dotnetN00b 2014-10-06 13:18:22

回答

4

不,你不能做的格式SQL服務器中的任何使用存儲時間數據類型。您只能使用像您在查詢時提到的那樣的技巧以期望的格式提供輸出。或者更好的是,在前端應用程序中進行格式化。

0

,你可以嘗試使用DATEPART(HH ...用case語句或IF/ELSE改變過去的中午,和CONCAT上午或下午的時間就結束

相關問題