WHERE子句中的T-SQL动态日期范围(上一会计年度+年初至今)

时间:2016-07-20 04:59:44

标签: sql sql-server tsql sql-server-2012 where-clause

我正在使用以下WHERE子句来仅加载上一个会计年度加上年初的记录。

在没有WHERE clause的情况下运行,1mil记录需要30秒。使用WHERE子句,我不得不在2小时后停止它。

你能否分享一下你的想法

WHERE 
    ([schema].[table].[DATE] >= DATEADD
        (yy, - 1, DATEADD
            (MONTH,(MONTH(GETDATE()) - 1) / 6 * 12 - 6,
             CAST(CAST(YEAR(GETDATE()) AS VARCHAR) AS DATETIME)
            )
        )
    )

2 个答案:

答案 0 :(得分:0)

titleView

你能试试吗

答案 1 :(得分:0)

这将带回自上一个会计年度开始日期以来的数据。只需将-3更改为您的FY偏移即可。 -3是十月份。

[schema].[table].[DATE] >= DATEADD(mm,-3,DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, -1, GETDATE())), 0))