我有以下场景。我需要从 2013 年至今任何一个月的最后几天。
如何组合这两个sql语句?
SELECT DATEADD(m, 0, GETDATE()) --today
SELECT DATEDIFF(m, '2013-01-01', GETDATE()) --60 months for 5 years
我需要这个结果:
LastDayOfMth
=======================
2013-01-31 00:00:00.000
2013-02-28 00:00:00.000
2013-03-31 00:00:00.000
2013-04-30 00:00:00.000
2013-05-31 00:00:00.000
....
2017-12-31 00:00:00.000
最佳答案
这是我在尝试生成日期时使用的代码类型,我已将其更改为选择您想要的第一个月的最后一天(2013 年 1 月 31 日),并要求它继续添加 1 个月直到今天的日期:
SELECT
DATEADD(MONTH, Number, '2013-01-31') AS [Date]
FROM
master..spt_values
WHERE
Type = 'P'
AND DATEADD(MONTH, Number, '2013-01-31') <= GETDATE()
关于sql - 获取月份的最后一天 (SQL Server 2008R2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48203718/