2017-09-05 102 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');