gpt4 book ai didi

sql-server - DATEDIFF 如何计算 SQL Server 2005 中的周差?

转载 作者:行者123 更新时间:2023-12-02 00:40:30 30 4
gpt4 key购买 nike

我想计算两个日期之间的周差,如果两个日期的前一个星期日相同,则两个日期被视为同一周的一部分。理想情况下,我想使用 DATEDIFF 来做到这一点。 ,而不是学习一个精心设计的习语来计算值。但是当涉及数周时,我不知道它是如何工作的。

以下查询返回 1 和 2。如果您的日历周以星期日开始,即如果您运行 SET DATEFIRST 7,这可能有意义。事先或如果 @@DATEFIRST默认为 7。

SET DATEFIRST 7;
-- SET DATEFIRST 1;

DECLARE
@d1 DATETIME,
@d2a DATETIME,
@d2b DATETIME
;
SELECT
@d1 = '2010-04-05', -- Monday
@d2a = '2010-04-16', -- Following Friday
@d2b = '2010-04-18' -- the Sunday following
;

SELECT
DATEDIFF(week, @d1, @d2a) AS weekdiff_a -- returns 1
,DATEDIFF(week, @d1, @d2b) AS weekdiff_b -- returns 2
;

所以如果 SET DATEFIRST 1,我预计会有不同的结果被执行而不是 SET DATEFIRST 7 .但不管怎样,返回值都是一样的!

这里发生了什么?我应该怎么做才能获得正确的周差?

最佳答案

DATEDIFF 不遵守 DATEFIRST 设置。

这是一个类似的问题,有一个潜在的解决方法:

Is it possible to set start of week for T-SQL DATEDIFF function?

关于sql-server - DATEDIFF 如何计算 SQL Server 2005 中的周差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2717152/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com