sql - 获取月份的最后一天 (SQL Server 2008R2)

标签 sql sql-server sql-server-2008

我有以下场景。我需要从 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/

相关文章:

sql userid + name + profile 优化问题

java - 如何将数据插入带有外键的表中?

mysql - 如何检查记录的日期时间字段是否小于当前日期时间?

sql - 如果主键不是 NULL,那么引用它的外键是否也应该指定为 NOT NULL?

.net - 是否可以将 System.Transactions.TransactionScope 与 SqlBulkCopy 一起使用?

java.sql.SQLException : Cannot create PoolableConnectionFactory, 连接被拒绝 SQL Server

php - foreach 循环内数据未按升序显示

sql-server - 创建 Azure 数据库副本,然后每晚将生产数据加载到副本中

sql - 比较来自 2 个不同数据库的 2 个不同表列

asp.net - 过程或函数 ""需要未提供的参数 ""