给定会计年度和季度数字时,计算开始日期和结束日期

时间:2020-01-30 17:31:02

标签: sql sql-server

当年份和季度作为数据类型为INT的参数给出时,季度开始日的公式是什么

Declare @Year INT = 2019
Declare @Quarter TINYINT = 1

预期结果:

07/01/2019 as start date 
10/31/2019 as end date

查询给了我季度的最后一天,但查询了会计年度的最后一天

Select dateadd(day, -1, 
                       dateadd(year, @year-1900,
                                          dateadd(quarter, @Quarter, 0)
                                     )
             )

1 个答案:

答案 0 :(得分:0)

我会推荐datefromparts()

select datefromparts(year, quarter * 3 - 2, 1) soq,
       dateadd(day, -1, dateadd(month, 3, datefromparts(year, quarter * 3 - 2, 1))) as eoq

如果您的会计年度从7月1日开始,那么您可以添加六个月:

select dateadd(month, 6, datefromparts(year, quarter * 3 - 2, 1)) soq,
       dateadd(day, -1, dateadd(month, 9, datefromparts(year, quarter * 3 - 2, 1))) as eoq