在SQL Server中计算会计年度

zaq34kh6  于 2022-09-18  发布在  Java
关注(0)|答案(20)|浏览(208)

如何根据SQL Server中的视图中的日期字段计算会计年度?

ac1kyiln

ac1kyiln16#

本例的最简单表达式:YEAR(DATEADD(month, 3, Date))

联邦财政年度

财政年度是联邦政府的会计期间。它从10月1日开始,到下一个历年的9月30日结束。每个财政年度由其结束的日历年度标识,通常被称为“FY”。例如,2003财年从2002年10月1日开始,到2003年9月30日结束...这样做的目的是让国会有更多的时间来处理拨款立法,特别是避免持续的决议。

这可能不适用于美国以外的其他国家和地区,但你只需根据需要替换数字3。

2ic8powd

2ic8powd17#

我已经扩展了ChrisF和Conficker发布的答案。

DECLARE @FFYStartMonth INT = 10 --The first month of the FFY
DECLARE @EntryDate DATETIME = '4/1/2015' --The date of the data
DECLARE @StartDate DATETIME

DECLARE @EndDate DATETIME

SET @StartDate = DATEADD(dd, 0,
    DATEDIFF(dd, 0,
        DATEADD(mm, - (((12 + DATEPART(m, @EntryDate)) - @FFYStartMonth)%12), @EntryDate) -
datePart(d,DATEADD(mm, - (((12 + DATEPART(m, @EntryDate)) - @FFYStartMonth )%12),
    @EntryDate )) + 1 ))  

SET @EndDate = DATEADD(SS, -1, DATEADD(mm, 12, @StartDate))

SELECT @StartDate, @EndDate
2guxujil

2guxujil18#

CASE 
  WHEN MONTH(Date) > 6 
   THEN YEAR(Date) + 1
   ELSE YEAR(Date)
  END AS [FISCAL YEAR]

In this case, Fiscal Year starts on 7/1. This is the simplest solution out there.

nhaq1z21

nhaq1z2119#

以下是澳大利亚财政年度开始日期代码

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 ) )

它像'2012-07-01 00:00:00.000'一样返回

gzjq41n4

gzjq41n420#

CASE WHEN MONTH(@Date) > 10 THEN YEAR(@Date) + 1 ELSE YEAR(@Date) END

相关问题