【问题标题】:How to find the last day of a Quarter, Half Year and Year of current Year in SQL Server?SQL Server如何查找季度、半年和当年的最后一天?
【发布时间】:2020-05-12 05:51:24
【问题描述】:

我想在 SQL Server 中获取季度、半年和当年的最后一天。假设当前日期为 2020 年 5 月 12 日,季度结束日期为 2020 年 6 月 30 日,半年日期为 2020 年 6 月 30 日,年结束日期为 2020 年 12 月 31 日。

我可以使用 DATEADD 和 DATEDIFF 内置函数获取季度和年份的最后日期,但无法获取半年的最后日期。 任何帮助,将不胜感激。

【问题讨论】:

    标签: sql-server datetime datediff


    【解决方案1】:

    由于您标记datediff,这是使用dateadd / datediff 的解决方案

    ; with dates as
    (
        select  [date] = convert(date, '2020-01-01')
        union all
        select  [date] = dateadd(month, 1, [date])
        from    dates
        where   [date]  < '2020-12-01'
    )
    select  [date],
            dateadd(quarter, datediff(quarter, 0, [date]) + 1, -1) as [Last Day of Quarter],
            dateadd(quarter, datediff(quarter, 0, [date]) / 2 * 2 + 2, -1) as [Last Day of Half Year],
            dateadd(year, datediff(year, 0, [date]) + 1, -1) as [Last Day of Year]
    from    dates
    

    db<>fiddle

    【讨论】:

      猜你喜欢
      • 2017-02-10
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      相关资源
      最近更新 更多