【www.gdgbn.com--班主任工作日志】

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

本文来源:http://www.gdgbn.com/banzhurengongzuo/26065/