每周将日期分组为YYYY / MM / WK

时间:2019-04-01 05:12:36

标签: sql sql-server

我在下面的查询中进行了显示,并给出了显示年和月的信息。 我还需要添加周号

select CONVERT(VARCHAR(7), DATEADD(MONTH, DATEDIFF(MONTH, 0, tqr_date), 0), 111) AS [Period Date],
REPLACE(RIGHT(CONVERT(VARCHAR(11), DATEADD(MONTH, DATEDIFF(MONTH, 0, tqr_date), 0), 106), 8), ' ', '-') AS Period,

输出将于2019/02,2019年2月

预期输出2019/02/5,(其中1是星期数), 05周

2 个答案:

答案 0 :(得分:1)

您可以在下面尝试-使用concat DATEPART ( dw , getdate() )

select concat(CONVERT(VARCHAR(7), DATEADD(MONTH, DATEDIFF(MONTH, 0, getdate()), 0), 111),'/',
DATEPART ( dw , getdate() ) )
AS [Period Date], 
REPLACE(RIGHT(CONVERT(VARCHAR(11),
DATEADD(MONTH, DATEDIFF(MONTH, 0, getdate()), 0), 106), 8), ' ', '-') AS Period

答案 1 :(得分:0)

     select Convert(varchar(20),getdate(),111) AS [Period Date],  
 DATEPART(WEEK, getdate())  - DATEPART(WEEK, DATEADD(MM, DATEDIFF(MM,0,getdate()), 0))+ 1 AS WEEK_OF_MONTH

enter image description here