sql server 获取本周周一开始时间

当你想要在 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 中,系统的周开始日是由系统日期设置和语言环境共同决定的。你可以通过以下步骤更改系统周的开始日:

  1. 使用以下查询检查当前的日期设置:

    SELECT @@DATEFIRST AS 'Current First Day of Week';

    这将返回一个数字,表示当前系统的周开始日。默认情况下,SQL Server 的周开始日是根据美国日期设置,星期日是一周的开始。

  2. 设置新的周开始日:

    例如,如果你想将周开始日设置为星期一,可以执行以下语句:

    SET DATEFIRST 1;

    这将把周开始日设置为星期一。请注意,此设置仅在当前会话中有效,如果你想要永久更改系统设置,你可能需要考虑修改服务器或数据库的默认语言设置。

请注意,更改系统的周开始日可能会影响一些日期函数的行为,因此请谨慎使用并测试你的查询是否按预期工作。

最近更新

  1. TCP协议是安全的吗?

    2024-01-16 23:44:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-16 23:44:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-16 23:44:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-16 23:44:06       20 阅读

热门阅读

  1. c# 类的方法链接例子

    2024-01-16 23:44:06       24 阅读
  2. Edge浏览器设置自动刷新

    2024-01-16 23:44:06       41 阅读
  3. kafka为什么快

    2024-01-16 23:44:06       33 阅读
  4. 边缘计算:挑战与机遇并存的新时代

    2024-01-16 23:44:06       39 阅读
  5. GPT获取session token

    2024-01-16 23:44:06       36 阅读
  6. SpringBoot Logback修改日志级别

    2024-01-16 23:44:06       38 阅读
  7. 边缘计算在DCIM系统中的应用

    2024-01-16 23:44:06       28 阅读
  8. Effective Objective-C学习第一周

    2024-01-16 23:44:06       28 阅读
  9. 二分查找&删除元素

    2024-01-16 23:44:06       34 阅读
  10. 设计模式——桥接模式

    2024-01-16 23:44:06       35 阅读
  11. leetcode-平衡二叉树

    2024-01-16 23:44:06       34 阅读
  12. 代码随想录day29 回溯开始进入排列问题

    2024-01-16 23:44:06       32 阅读