我需要根据到达日期运行每周报告。如何在where子句中设置到达日期,以便我只能每周获得结果。困难的部分是我不想每周修改日期。我需要日期的永久where子句。我必须提供每周到达的客户列表,我只想运行相同的脚本而不更改周日期。
请协助。 感谢。
答案 0 :(得分:1)
SELECT * FROM TABLE WHERE
(ARRIVAL_DATE>DATEFROMPARTS(YEAR(GETDATE()-7), MONTH(GETDATE()-7), DAY(GETDATE()-7)))//7 days before starting at midnight
AND
(ARRIVAL_DATE<DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE()))) //NOW in the YYYY, MM,DD format
答案 1 :(得分:0)
这将获得当前日历周(周一至周日)发生的所有事情
SELECT * FROM Table1
WHERE ArrivalDate BETWEEN
CAST(DATEADD(dd,(((DATEPART(dw,getdate())+@@DATEFIRST) % 7)+5) % 7 ,getdate()) as date) AND
CAST(DATEADD(dd,6+((((DATEPART(dw,getdate())+@@DATEFIRST) % 7)+5) % 7 ),getdate()) as date)
编辑 - 删除BETWEEN中的额外E