Rumah >pangkalan data >tutorial mysql >计算给定日期所在月的上月最后一天 sql语句

计算给定日期所在月的上月最后一天 sql语句

WBOY
WBOYasal
2016-06-07 17:47:242167semak imbas

计算给定日期所在月的上月最后一天 sql语句

计算给定日期所在月的上月最后一天 sql语句

declare @date  datetime
set @date=getdate()
--当前月第一天减去一天
select dateadd(day,-1,dateadd(month,datediff(month,0,@date),0)) as '上月最后一天'
--另一种当前月第一天算法
select dateadd(day,-1,dateadd(day,1-datepart(day,@date),@date)) '上月最后一天'
select dateadd(day,1-datepart(day,@date),@date)-1 '上月最后一天'
--另一种算法,不能用当前月的最后一天加一个月,因为当前月可能是30天。
--例如 select dateadd(month,1,'2010-06-30') --结果是2010-07-30而不是2010-07-31,
--这也是月末算法采用下月第一天减1天计算的原因
--但是如果计算月是31天择无此问题
--例如 select dateadd(month,1,'2010-05-31') --结果是2010-06-30
--因此下面算法是正确的,-1 表示'1899-12-31 00:00:00.000'-- select convert(datetime,-1)
select dateadd(month,datediff(month,-1,@date)-1,-1)
--另一种当前月算法
select dateadd(day,-1,dateadd(day,1-datepart(day,@date),@date)) '上月最后一天'
--简化
select dateadd(day,0-datepart(day,@date),@date) '上月最后一天'
go

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn