此查询是否成功找到任何给定日期月份的第一个星期一?



我的服务器被配置为周日是第0天,周一是第1天。为了找到任何给定日期的第一个星期一,我写了这样的文章:

SELECT DATEADD(DAY,
- ((DATEPART(WEEKDAY, DATEADD(DAY, 1, EOMONTH(DATEADD(MONTH, -1, [DATE])))) %7) - 1),
DATEADD(DAY, 1, EOMONTH(DATEADD(MONTH, -1, [DATE]))))

这是否按预期工作?此外,还有更好或更标准的方法吗?我发现非常令人惊讶的是,有一个EOMONTH函数,但一个月初什么都没有。

Select dateadd(day, (7 - datediff(day, -53690, mm.FirstOfMonth) % 7) % 7, mm.FirstOfMonth)
From (Values (dateadd(month, datediff(month, 1, getdate()), 0))) As mm(FirstOfMonth)

相关内容

  • 没有找到相关文章

最新更新