当你想要在 SQL Server 中获取一个给定 DATETIME
值所在周的开始时间(星期一),可以使用以下代码:
DECLARE @InputDate DATETIME = '2024-01-15 18:30:00';
SELECT DATEADD(DAY, 2 - DATEPART(WEEKDAY, @InputDate), CAST(@InputDate AS DATE)) AS StartOfWeek;
在这个查询中:
-
DATEPART(WEEKDAY, @InputDate)
获取给定日期的星期几(1 = 星期日,2 = 星期一,..., 7 = 星期六)。 -
1 - DATEPART(WEEKDAY, @InputDate)
计算要从输入日期中减去的天数,以获得前一个星期一。 -
CAST(@InputDate AS DATE)
用于去除输入日期的时间部分。 -
DATEADD(DAY, ..., ...)
用于从截断的输入日期中减去计算得到的天数,从而得到本周的开始时间(星期一)。
调整 @InputDate
的值以获取所需日期的本周开始时间。
设置系统周一为一周的开始
在 SQL Server 中,系统的周开始日是由系统日期设置和语言环境共同决定的。你可以通过以下步骤更改系统周的开始日:
-
使用以下查询检查当前的日期设置:
SELECT @@DATEFIRST AS 'Current First Day of Week';
这将返回一个数字,表示当前系统的周开始日。默认情况下,SQL Server 的周开始日是根据美国日期设置,星期日是一周的开始。
-
设置新的周开始日:
例如,如果你想将周开始日设置为星期一,可以执行以下语句:
SET DATEFIRST 1;
这将把周开始日设置为星期一。请注意,此设置仅在当前会话中有效,如果你想要永久更改系统设置,你可能需要考虑修改服务器或数据库的默认语言设置。文章来源:https://www.toymoban.com/news/detail-795841.html
请注意,更改系统的周开始日可能会影响一些日期函数的行为,因此请谨慎使用并测试你的查询是否按预期工作。文章来源地址https://www.toymoban.com/news/detail-795841.html
到了这里,关于sql server 获取本周周一开始时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!