2017-09-05 103 views
2

我有這種格式的日期2017-02-03,我希望我的日期應該是這種格式01-Mar-2016,同時做出選擇命令。在SQL Server 2012中的日期格式

我使用SQL Server 2012的

+0

我們在這裏談論的是DateTime專欄嗎? –

+0

一個非常類似的問題,可以幫助你:[鏈接](https://stackoverflow.com/questions/17205441/convert-date-format-into-dd-mmm-yyyy-format-in-sql-server) – MartinLeitgeb

+0

你的你的第一部分的價值是不明確的。你在談論'YYYY-MM-DD'(ISO格式)嗎? – Pac0

回答

1

檢查這個website。這將有所幫助。

select replace(convert(varchar, getdate(), 106),' ','-') 

這裏做的是:首先將它轉換爲'01 Mar 2016',然後用' - '替換空格('')。這將給所需的輸出爲'01 -mar-2016'

+3

得到這個[不良習慣踢:宣佈VARCHAR沒有(長度)](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09 /bad-habits-to-kick-declaring-varchar-without-length.aspx) – GarethD

0

使用SQL Server Format功能,您可以指定.NET格式字符串

例如,對於當前日期

SELECT FORMAT(GETDATE(), 'dd-MMM-yyyy'); 

你也可以指定如果需要的文化在這裏

SELECT FORMAT(GETDATE(), 'dd-MMM-yyyy', 'en-US'); 

如果日期存儲爲字符串,你最好解決這個問題,但你可以只用CAST or CONVERT。即

SELECT FORMAT(CAST('2017-10-11' AS date), 'dd-MMM-yyyy');