2017-04-13 54 views
0

我有一個存儲過程。我宣佈一個表變量CREATION_TIME如何將格式從yyyy-mm-dd hh:mm:ss更改爲dd-mm-yyyy hh:mm am/pm

我的創作時間格式現在這個樣子:2017-04-12 13:01:04.730

我要像12/04/2017 13:01 PM

你能幫我格式化?

謝謝。

+2

日期毫米TT

不以格式存儲。它們存儲爲日期時間。當你想要一個特定的格式時,最好留給前端應用程序。但是,如果你絕對必須格式化sql的日期,你需要使用FORMAT函數或CONVERT。 –

+0

我使用了這個函數CONVERT(VARCHAR(24),L.CreatedON,103),但它不起作用。我使用了SSRS報告服務器,但我只是更改了小時部分。 – Aylin

+1

爲什麼不能在SSRS中格式化輸出,而不是試圖強制查詢的格式?如果你在查詢過程中遇到這種情況,你將不得不使用FORMAT。 –

回答

1

您可以使用,如果2012+

Declare @D datetime = '2017-04-12 13:01:04.730' 
Select Format(@D,'dd/MM/yyyy hh:mm tt') 

返回

12/04/2017 01:01 PM 

通知的HH格式()VS HHhh將提供12小時,而HH將提供24小時。

似乎很奇怪打造13:01 PM

1

對於舊版本的SQL Server我的意思是年紀比2012的時候,我們沒有FORMAT()功能,您可以使用類似的....

SELECT CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' 
    + LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100) , 7)) 


Returns: 13/04/2017 3:53PM 
1

我同意SSRS中的建議。

更新您的文本框/表矩陣的格式屬性如下:

DD/MM/YYYY HH:(按要求英國/美國等交換日和月)

+0

感謝您的回答。真的SSRS也更容易改變格式。 我更新了ssrs (Textbox properties - number - custom dd/MM/yyyy h:mm tt)的格式 非常感謝你:) – Aylin

相關問題