Bre*_*tra 19
我建议您根据应用程序的会计年度使用用户定义的函数.
CREATE FUNCTION dbo.fnc_FiscalYear(
@AsOf DATETIME
)
RETURNS INT
AS
BEGIN
DECLARE @Answer INT
-- You define what you want here (September being your changeover month)
IF ( MONTH(@AsOf) < 9 )
SET @Answer = YEAR(@AsOf) - 1
ELSE
SET @Answer = YEAR(@AsOf)
RETURN @Answer
END
GO
Run Code Online (Sandbox Code Playgroud)
像这样使用它:
SELECT dbo.fnc_FiscalYear('9/1/2009')
SELECT dbo.fnc_FiscalYear('8/31/2009')
Run Code Online (Sandbox Code Playgroud)
R0b*_*n1k 10
CASE WHEN MONTH(@Date) > 10 THEN YEAR(@Date) + 1 ELSE YEAR(@Date) END
Run Code Online (Sandbox Code Playgroud)
小智 10
这是澳大利亚财政年度的开始日期代码
select DATEADD(dd,0, DATEDIFF(dd,0, DATEADD( mm,
-(((12 + DATEPART(m, getDate())) - 7)%12), getDate() )
- datePart(d,DATEADD( mm, -(((12 + DATEPART(m, getDate())) - 7)%12),getDate() ))+1 ) )
Run Code Online (Sandbox Code Playgroud)
它返回就像 '2012-07-01 00:00:00.000'
小智 6
CASE
WHEN MONTH(Date) > 6
THEN YEAR(Date) + 1
ELSE YEAR(Date)
END AS [FISCAL YEAR]
Run Code Online (Sandbox Code Playgroud)
在这种情况下,会计年度从7/1开始.这是最简单的解决方案.