每周报告数据的SQL日期问题

时间:2014-12-22 18:11:44

标签: sql sql-server-2012

我需要根据到达日期运行每周报告。如何在where子句中设置到达日期,以便我只能每周获得结果。困难的部分是我不想每周修改日期。我需要日期的永久where子句。我必须提供每周到达的客户列表,我只想运行相同的脚本而不更改周日期。

请协助。 感谢。

2 个答案:

答案 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