我有一个日期列设置为日期时间的表。我目前正在选择并转换日期,如下所示,返回以下格式:dd mmm yyyy
当前(示例):2014年8月23日
CONVERT(VARCHAR(11), C.modTime, 106) AS modTime
有人可以告诉我我需要如何改变它以获得以下格式:dddd, dd mmmm yyyy
必填(示例):2014年8月23日星期六
用这个:
DATENAME(dw, C.modTime) + ', ' + CONVERT(VARCHAR(11), C.modTime, 106) AS modTime
当使用getdate()的当前值运行时,产生:
2014年8月23日星期六
或者,手动构建整个字符串:
DATENAME(dw, C.modTime) + ', ' +
cast(datepart(dd, C.modTime) as char(2)) + ' ' +
datename(mm, C.modTime) + ' ' +
cast(datepart(yyyy,C.modTime) as char(4))
要得到: 2014年8月23日星期六
SQL Server 2012或更高版本
declare @d as datetime = '20140823'
select format(@d,'dddd, dd MMMM yyyy', 'en-US')
结果= 2014年8月23日星期六
试试这个:
SELECT DATENAME(dw, GETDATE()) + ', ' + STR(DAY(GETDATE()),2,1) + ' ' + DATENAME(M,GETDATE()) + ' ' + STR(YEAR(GETDATE()),4,1)