gpt4 book ai didi

sql - 使用 DATEADD 和 DATEDIFF 获取一周的开始日(星期一)时出现问题

转载 作者:行者123 更新时间:2023-12-04 18:25:32 26 4
gpt4 key购买 nike

当用户输入其他日期的日期时,我使用此 sql 获取一周的开始日期(星期一)

@StartDate 的格式为 (yyyymmdd)

SQL: CAST(convert(varchar(12),DATEADD(week,DATEDIFF(week,0,@StartDate),0),112) as int

问题是当输入的日期是从星期二到星期六时,它返回到本周的正确星期一。然而,当输入的日期是星期日时,它返回下周星期一的日期。

谁能告诉我我做错了什么
谢谢

最佳答案

您的星期日与星期一属于同一周,这将使星期一成为一周的第一天。它应该可以解决您的查询

set datefirst 1

此语法不关心数据库考虑一周的第一天是哪一天,它会计算您的@StartDate 的真实周的星期一。

DATEADD(week, DATEDIFF(day, 0, @StartDate)/7, 0)

你可以用这个测试:

SELECT DATEADD(week, DATEDIFF(day, 0, getdate())/7, 0)

关于sql - 使用 DATEADD 和 DATEDIFF 获取一周的开始日(星期一)时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7255595/

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