假设有一批日期,我如何能通过使用TSQL函数算出他们所属的是哪一年的第几周,又是星期几呢?比如
比如 2017-01-05 02:40:04.000
对应的年和周应该是 2017-wk2
它还是THURSDAY 星期四
代码如下:
declare @thedate datetime
set @thedate = '2017-01-05 02:40:04.000'
select
LEFT(UPPER(datename(dw, @thedate)),3) as weekday,
convert(varchar(10), datepart(year, @thedate))+'-wk'+convert(varchar(10), datepart(wk, @thedate)) as yearweek
结果长这样:
其中的datename函数返回英文的星期几,这里我把返回值变成大写并且只截取前三个字母来作为简化的输出结果。
当然,我们需要返回的不是英文的星期几而是数字怎么办?比如周一就是1,周日就是7。- 用Datepart函数+dw来解决,如下。
Select Datepart(dw,loadtime ) as Weekday