Jam*_*123 6 sql t-sql sql-server
我有一个日期字段需要以财政年度格式返回.例
Start_Date Year
04/01/2012 - 2013
01/01/2012 - 2012
09/15/2013 - 2014
Run Code Online (Sandbox Code Playgroud)
我们需要计算
04/01/2012 to 03/31/2013 is FY 2013
Run Code Online (Sandbox Code Playgroud)
和
04/01/2013 to 03/31/2014 is FY 2014
Run Code Online (Sandbox Code Playgroud)
我们怎样才能在select语句中做到这一点?
Gor*_*off 12
大卫有一个很好的解决方案.一个更简单的表达是:
select year(dateadd(month, -3, start_date)) as FiscalYear
Run Code Online (Sandbox Code Playgroud)
也就是说,减去3个月并取一年.
编辑:
正如评论中所指出的,这似乎过早产生了一年.这有两个解决方案:
select year(dateadd(month, 9, start_date)) as FiscalYear
select 1 + year(dateadd(month, -3, start_date)) as FiscalYear
Run Code Online (Sandbox Code Playgroud)
Dav*_*vid 11
SELECT CASE WHEN DatePart(Month, Start_Date) >= 4
THEN DatePart(Year, Start_Date) + 1
ELSE DatePart(Year, Start_Date)
END AS Fiscal_Year
FROM data
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
48745 次 |
最近记录: |