欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

查询给定日期所在月的第一个星期一是哪天 sql语句

程序员文章站 2022-03-26 17:30:45
...

查询给定日期所在月的第一个星期一是哪天 sql语句

查询给定日期所在月的第一个星期一是哪天 sql语句

declare @date datetime;
set @date = getdate()
--思路,1900-01-01(星期一)加上(给定日志所在月的月6号与1900-01-01差的周数)个周
--为什么不选7号?如果是7号,那么7好恰好是星期日的话,第一个周一就会算到8号。
--为什么不选5号?如果5号是星期六,那么周一就跑到上月了。小于5号与这个道理一样。
select dateadd(week,datediff(week,0,dateadd(day,6-datepart(day,@date),@date)),0) '所在月的第一个星期一'
select dateadd(week,datediff(week,0,dateadd(day,6-datepart(day,@date),@date)),7) '所在月的第二个星期一'
select dateadd(week,datediff(week,0,dateadd(day,6-datepart(day,@date),@date)),1) '所在月的第一个星期二'
select dateadd(week,datediff(week,0,dateadd(day,6-datepart(day,@date),@date)),8) '所在月的第二个星期二'
go