从特定月份开始的3年日期范围

时间:2019-12-18 16:08:13

标签: sql sql-server tsql

我正在使用SQL Management Studio 2012 我希望“ WHERE”子句从财政年度开始(在这种情况下为4月)开始的3年期间中选取数据,并一直持续到现在。

当前数据

  Row      date
   A       2019-03-01
   B       2018-01-01
   C       2017-06-05
   D       2017-04-02
   E       2015-08-01

我想要的

  Row      date
   A       2019-03-01
   B       2018-01-01
   C       2017-06-05
   D       2017-04-02

这是我尝试过的,不是我想要的,我无法让它从4月开始

date between Dateadd(Month, Datediff(Month, 0, DATEADD(m, -36,  GETDATE())), 0)   AND DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE()), 0)

编辑:由于我对自己的解释不够充分

我正在尝试在报表制作工具中创建一个报表,该报表的矩阵类似于以下内容

         Fiscal     Fiscal      Fiscal
   Row   2017/18   2018/19    2019/2020
    A      54         45          66
    B      12         54          76
    C      11         34          56
    D      16         98          99

在下一个会计年度开始时,我希望矩阵可以这样更新。

     Fiscal        Fiscal      Fiscal
   Row   2018/19   2019/20    2020/2021
    A      45         66          3
    B      54         76          5
    C      34         56          2
    D      98         99          1

1 个答案:

答案 0 :(得分:2)

这很丑,但是它应该可以工作而且应该很快。

Select DateAdd(Month, DateDiff(Month, 0, DateAdd(Month, -36, DateAdd(Month, 3 - DateDiff(Month, 0, GetDate()) % 12, GetDate()))), 0)