gpt4 book ai didi

sql - 为什么 DATEDIFF wk 显示一周为 6 天?

转载 作者:行者123 更新时间:2023-12-04 20:35:28 24 4
gpt4 key购买 nike

我使用DATEADD(ww, DATEDIFF(ww, 0, GETDATE()), 0) 来获取一周的开始时间来运行几个报告,但是当它运行在a Sunday 它使用下周而不是当前周。当我运行以下命令时,我对结果感到困惑,因为它显示即使 Day Diff 是 6,week diff 是 1 而不是零。为什么会这样?

SELECT DATEDIFF(WEEK, '20160527', GETDATE()) Wks, DATEDIFF(Day, '20160527', GETDATE()) Dys
SELECT DATEDIFF(WEEK, '20160528', GETDATE()) Wks, DATEDIFF(DAY, '20160528', GETDATE()) Dys
SELECT DATEDIFF(WEEK, '20160529', GETDATE()) Wks,DATEDIFF(Day, '20160529', GETDATE()) Dys
SELECT DATEDIFF(WEEK, '20160530', GETDATE()) Wks,DATEDIFF(DAY, '20160530', GETDATE()) Dys

Results

最佳答案

DATEDIFF 显示跨越边界的数量,而不是四舍五入的实际时间差异,因此这可能会导致一些像这样的“奇怪”行为,具体取决于日子何时下降。正如 Damien_The_Unbeliever 指出的那样,对于 DATEDIFF,一周的开始总是被认为是星期日。

例如,从星期六到星期日仍然会显示 DATEDIFF 数周,即使它也只是一天。

类似地,从 12:01 AM 到 11:59 PM 是几天的 DATEDIFF 0,但是 11:59 PM 到 12:01 AM 是 DATEDIFF 1 天。

关于sql - 为什么 DATEDIFF wk 显示一周为 6 天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37616980/

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