2012-03-30 52 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