我有一个名为"AirDate"的字段,其格式为mm/dd/yyyy。我想创建一个"WeekOf"字段,该字段使用AirDate字段将星期二作为一周的开始,为我提供week of日期。
AirDate=11/11/2019,WeekOf=11/15/2019
AirDate=11/12/2019,WeekOf=11/12/2018
播出日期=2019年11月13日,每周=2019年12月11日等
编写查询以返回此格式的"WeekOf"日期的正确方法是什么?
sql server
您可以使用datefirst
设置tuesday
。参见文件
set datefirst 2
select wkTuesday = dateadd(dd, (-1)* (datepart(dw,'11/11/2019')-1), '11/11/2019')
set datefirst 7
试试这个
并将getdate((替换为您想要的日期
SELECT dateadd(dd, (-1 * DATEPART(WEEKDAY, getdate())) + 1, getdate())
编辑
declare @YourDate date = '19 NOv 2019'
declare @DayNo int
SET @DayNo = CASE WHEN DATEPART(WEEKDAY, @YourDate) < 3 THEN DATEPART(WEEKDAY, @YourDate) + 5 ELSE DATEPART(WEEKDAY, @YourDate) - 2 END
SELECT 'AirDate = ' + cast(@YourDate as varchar(100)) + ' , WeekOf = ' + cast( dateadd(dd, (-1 * @DayNo) + 1, @YourDate) as varchar(100))