我只使用DATEDIFF函数过滤本周添加的记录:
DATEDIFF(week, DateCreated, GETDATE()) = 0
我注意到它假设星期天从星期天开始。但就我而言,我更愿意将一周的开始时间设置在星期一。在 T-SQL 中是否有可能?
谢谢!
更新:
下面是一个显示 DATEDIFF 不检查@@DATEFIRST变量的示例,因此我需要另一个解决方案。
SET DATEFIRST 1;
SELECT
DateCreated,
DATEDIFF(week, DateCreated, CAST('20090725' AS DATETIME)) AS D25,
DATEDIFF(week, DateCreated, CAST('20090726' AS DATETIME)) AS D26
FROM
(
SELECT CAST('20090724' AS DATETIME) AS DateCreated
UNION
SELECT CAST('20090725' AS DATETIME) AS DateCreated
) AS T
输出:
DateCreated D25 D26
----------------------- ----------- -----------
2009-07-24 00:00:00.000 0 1
2009-07-25 00:00:00.000 0 1
(2 row(s) affected)
2009 年 7 月 26 日是星期日,我希望 DATEDIFF 在第三列也返回 0。