SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0)) LastDay_CurrentMonth
大家好,我有一个查询来查找当月的最后一天,这个查询肯定运行良好,但是我无法理解它,因为我还有其他类似的要求,因此必须进行相应的更改。
有人可以向我解释一下吗。
获取 现在 的日期时间 __
GETDATE() -- 2011-09-15 13:45:00.923
计算与“ 1900-01-01”的月份差异
DATEDIFF(m, 0, GETDATE()) -- 1340
将差额添加到“ 1900-01-01”再加上一个月
DATEADD(m, DATEDIFF(m, 0, GETDATE())+1, 0) -- 2011-10-01 00:00:00.000
删除一秒钟
DATEADD(s, -1, DATEADD(m, DATEDIFF(m, 0, GETDATE())+1, 0)) -- 2011-09-30 23:59:59.000