将周附加到滚动日期列
Appending weeks to rolling date column
我有一个每日滚动日期列,[table]。[日期],从 2020-06-27 到今天。
我需要附加一个周数,将 2020-06-27 到 2020-07-03 作为第 1 周,依此类推。星期六到星期五定义为一周。
我尝试了以下方法。虽然这只定义了一年中的 周 ,所以当一年过去时,我最终会出现重叠。此外,它没有将第一个日期定义为第 1 周。
datepart(week,[table].[Date]) as Week
据推测,您正在使用 SQL 服务器(基于 SSMS 标记)。
你可以算天数除以7:
select ceiling(datediff(day, '2020-06-26', t.date) / 7.0) as week_number
或者:
select 1 + floor(datediff(day, '2020-06-27', t.date) / 7.0) 作为 week_number
如果您不想对第一次约会进行硬编码,您可以使用 window 函数:
select ceiling(datediff(day, min(t.date) over (), t.date) / 7.0) as week_number
我有一个每日滚动日期列,[table]。[日期],从 2020-06-27 到今天。
我需要附加一个周数,将 2020-06-27 到 2020-07-03 作为第 1 周,依此类推。星期六到星期五定义为一周。
我尝试了以下方法。虽然这只定义了一年中的 周 ,所以当一年过去时,我最终会出现重叠。此外,它没有将第一个日期定义为第 1 周。
datepart(week,[table].[Date]) as Week
据推测,您正在使用 SQL 服务器(基于 SSMS 标记)。
你可以算天数除以7:
select ceiling(datediff(day, '2020-06-26', t.date) / 7.0) as week_number
或者:
select 1 + floor(datediff(day, '2020-06-27', t.date) / 7.0) 作为 week_number
如果您不想对第一次约会进行硬编码,您可以使用 window 函数:
select ceiling(datediff(day, min(t.date) over (), t.date) / 7.0) as week_number