我有一个日期列设置为日期时间的表。我目前正在选择并转换日期,如下所示,返回以下格式:dd mmm yyyy
当前(示例): 2014年8月23日
CONVERT(VARCHAR(11), C.modTime, 106) AS modTime
有人可以告诉我如何更改此内容以获取以下格式:dddd, dd mmmm yyyy
必填(示例): 2014年8月23日星期六
答案 0 :(得分:2)
SQL Server 2012或更高版本
declare @d as datetime = '20140823'
select format(@d,'dddd, dd MMMM yyyy', 'en-US')
结果= 2014年8月23日星期六
答案 1 :(得分:1)
使用此:
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日星期六
答案 2 :(得分:1)
试试这个:
SELECT DATENAME(dw, GETDATE()) + ', ' + STR(DAY(GETDATE()),2,1) + ' ' + DATENAME(M,GETDATE()) + ' ' + STR(YEAR(GETDATE()),4,1)