我的日期格式为
'2013-09-22 00:00:00.000'
我需要22-09-2013, Sunday
和22-Sep-2013, Sunday
格式。我发现任何转换功能都可以获得好几天。
谢谢
答案 0 :(得分:1)
我认为您需要使用CONVERT()和DATENAME()函数,如下所示:
1) select CONVERT(varchar(20), getdate(),105) + ',' + datename(DW, getdate())
2) select REPLACE(CONVERT(varchar(20), getdate(),106),' ','-') + ',' + datename(DW, getdate())
结果是
07-11-2013, Thursday and 07-Nov-2013, Thursday
答案 1 :(得分:1)
SELECT REPLACE(REPLACE(CONVERT(VARCHAR(11), GETDATE(), 103), ' ', '-'), '/', '-') + ', ' + datename(dw,getdate()) AS [DD-Mon-YYYY];
和
SELECT REPLACE(REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-'), '/', '-') + ', ' + datename(dw,getdate()) AS [DD-Mon-YYYY];
输出:
07-11-2013, Thursday
和07-Nov-2013, Thursday
(您可能不需要第一个REPLACE函数。没有它,我的第二个日期显示为07/11/2013, Thursday
。替换只是将'/'
替换为您指定的'-'
我同意其他人的意见,建议转换应该在客户端应用程序中处理。特别是如果应用程序将在不同的时区使用。在SQL中对日期格式进行硬编码可能会导致混淆。
答案 2 :(得分:0)
存储在SQL-Server中的日期没有任何格式。客户端应用程序(例如ssms)格式化日期。
如果您需要在服务器端格式化日期,可以使用CAST or CONVERT函数将其转换为varchar。
SELECT CONVERT(varchar(50),@date,110)+', '+ DATENAME(weekday, GETDATE())
答案 3 :(得分:0)
你可以写成:
SELECT CONVERT(VARCHAR(10), GETDATE(), 105) + ', '+ DATENAME (weekday ,GETDATE()) AS [DD-MM-YYYY, DAY],
REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-') + ', '+ DATENAME (weekday ,GETDATE()) AS [DD-Mon-YYYY, DAY]