首页 > 解决方案 > 跳过 SQL Server 中当前日期的月份

问题描述

SELECT
    CAST('01 '+ RIGHT(CONVERT(CHAR(11), DATEADD(MONTH, -18, GETDATE()), 113), 8) AS date)  

输出 : 2018-12-01

SELECT 
    CAST(DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE()) - 1, -1) AS date)  

输出 : 2020-05-31

查询结果是从 2018 年 12 月到 2020 年 5 月,但我想跳过最后 4 个月。

我希望输出为 2018 年 7 月 - 2019 年 12 月 (2018-07-01 - 2019-12-31)

有人能帮忙吗?

谢谢

标签: sqlsql-server

解决方案


您能否按照您对当前日期的预期检查它的最后返回日期。

SELECT CONVERT(DATE,DATEADD(DAY,-DAY(GETDATE())+31,DATEADD(MM,-MONTH(GETDATE()), GETDATE()))) AS Date;

SELECT CAST('01 '+ RIGHT(CONVERT(CHAR(11),DATEADD(MONTH,-23,GETDATE()),113),8) AS DATE)

输出

Date
----------
2019-12-31

----------
2018-07-01

推荐阅读