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

  • 栏目:数据 时间:2020-05-05 02:40
<返回列表

查询给定日期所在月的第一个星期一是哪天 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

月初,计算给定日期所在月的第一天

--这个计算的技巧是先计算当前日期到1900-01-01的时间间隔数,然后把它加到1900-01-01上来获得特殊的日期,这个技巧可以用---来计算很多不同的日期。declare @date datetimeset @date=getdate()select dateadd(month,datediff(month,'1900-01-01',@date),'1900-01-01') as '所在月的第一天'--精简算法,根据sql server的时间表示方式可知,'1900-01-01' 可以用0代替select dateadd(month,datediff(month,0,@date),0) as '所在月的第一天'--上面两种算法精确到天 时分秒均为00:00:00.000--下面算法课以保留时分秒--思路:用给定日期减去月第一天与给定日期差的天数select dateadd(day,1-datepart(day,@date),@date)go

--月末,计算给定日期所在月的最后一天

declare @date datetimeset @date=getdate()--思路:当前月的下一月1号在减1天select dateadd(day,-1,dateadd(month,1+datediff(month,'1900-01-01',@date),'1900-01-01')) as '所在月的最一天'select dateadd(month,1+datediff(month,'1900-01-01',@date),'1900-01-01')-1 as '所在月的最一天'--1900-01-01 用0代替select dateadd(day,-1,dateadd(month,1+datediff(month,0,@date),0)) as '所在月的最一天'select dateadd(month,1+datediff(month,0,@date),0)-1 as '所在月的最一天'--思路:与月初计算思路相同select dateadd(month,datediff(month,'1989-12-31',@date),'1989-12-31') as '所在月的最一天'--精简算法,'1989-12-31' 用-1代替select dateadd(month,datediff(month,-1,@date),-1) as '所在月的最一天'--保留时分秒的算法select dateadd(day,-1,dateadd(month,1,dateadd(day,1-datepart(day,@date),@date)))go

上一篇:创建一个项目(现有数据 下一篇:没有了

更多阅读

BACKUP LOG 数据库名 WITH NO,请把数据库的故

数据 2020-05-05
Server Error in '/'Application./prepre--------------------------------------------------------------------------------/pr...
查看全文

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

数据 2020-05-05
查询给定日期所在月的第一个星期一是哪天 sql语句 月初,计算给定日期所在月的第一天,月末...
查看全文

计算给定日期所在月的上月第一天和最后

数据 2020-05-05
计算给定日期所在月的上月第一天和最后一天 sql语句 declare @date datetimeset@date=getdate()--当前月第...
查看全文

友情链接: 网站地图

Copyright © 2015-2019 http://www.koi-bumi.com. 韦德体育有限公司 版权所有