SQL上一财年

时间:2016-02-22 15:25:15

标签: sql date view filter

我的视图显示的是截至会计年度的数据。我需要另一个显示上一财年的视图。我有一个包含会计年度开始和结束日期的表。即7/1 / YYYY至6/30 / YYYY。

2 个答案:

答案 0 :(得分:1)

我建议您根据应用程序的会计年度使用用户定义的函数。

CREATE FUNCTION dbo.fnc_FiscalYear(
    @AsOf           DATETIME
)
RETURNS INT
AS
BEGIN

    DECLARE @Answer     INT

    -- You define what you want here (July being your changeover month)
    IF ( MONTH(@AsOf) < 7 )
        SET @Answer = YEAR(@AsOf) - 1
    ELSE
        SET @Answer = YEAR(@AsOf)


    RETURN @Answer

END

GO

像这样使用:

SELECT dbo.fnc_FiscalYear('7/1/2016')


SELECT dbo.fnc_FiscalYear('6/30/2015')

答案 1 :(得分:1)

我认为这个解决方案可行。

在DATEADD之间(月,6,DATEADD(yy,DATEDIFF(yy,1,GETDATE()) - 2,0))和       DATEADD(月,6,DATEADD(dd,-1,DATEADD(yy,DATEDIFF(yy,0,GETDATE()) - 1,0)))