2012-03-30 51 views
0

CAST(IH.InvoiceDate AS日期)AS InvoiceDate格式的Sql DateTime對象

這將返回2012-03-16是有可能在SELECT語句格式化這個返回16/03/2012

我使用SQL Server 2008 R2

+0

任何你不想在客戶端代碼中這樣做的原因?通常情況下這會更合適 - 只能儘可能靠近用戶(或其他需要它的系統)進行文本轉換。 – 2012-03-30 14:50:55

+0

它在多個地方和程序中使用,到目前爲止時間部分剛剛被隱藏在界面上。 (它最初只是IH.InvoiceDate),我認爲修改它而不影響程序的任何部分的最佳位置將在select statement – Noelle 2012-03-30 15:02:51

回答

3

要實現該格式,您需要將其轉換爲VARCHAR並應用格式。在這種情況下,格式103將輸出在dd/mm/yyyy格式日期:假設InvoiceDateDateTime

CONVERT(VARCHAR, CAST(IH.InvoiceDate AS DATE), 103) AS InvoiceDate 

,你可以擺脫演員太:

CONVERT(VARCHAR, IH.InvoiceDate, 103) AS InvoiceDate 
7

您必須使用convert功能

declare @date datetime 

set @date='2012-03-16 ' 

SELECT convert(varchar, @date, 103) 

下面你進一步參考可以找到所有可能的˚F ORMAT約會

100 – mon dd yyyy hh:mmAM (or PM) 
    – Oct 2 2008 11:01AM   
101 – mm/dd/yyyy - 10/02/2008     
102 – yyyy.mm.dd – 2008.10.02   
103 – dd/mm/yyyy 
104 – dd.mm.yyyy 
105 – dd-mm-yyyy 
106 – dd mon yyyy 
107 – mon dd, yyyy 
108 – hh:mm:ss 
109 – mon dd yyyy hh:mm:ss:mmmAM (or PM) 
    – Oct 2 2008 11:02:44:013AM 
110 – mm-dd-yyyy 
111 – yyyy/mm/dd 
112 – yyyymmdd 
113 – dd mon yyyy hh:mm:ss:mmm 
    – 02 Oct 2008 11:02:07:577  
114 – hh:mm:ss:mmm(24h) 
120 – yyyy-mm-dd hh:mm:ss(24h) 
121 – yyyy-mm-dd hh:mm:ss.mmm 
126 – yyyy-mm-ddThh:mm:ss.mmm 
    – 2008-10-02T10:52:47.513 
+0

done @JamesJohnson謝謝 – 2012-03-30 14:53:25

+1

+1列出不同的格式。 – 2012-03-30 14:54:33

3

你需要將其轉換爲一個字符串來得到它顯示的廣告DD/MM/YYYY(不需要臨時投);

convert(varchar(10), IH.InvoiceDate, 103) AS InvoiceDate