SQL Server中如何根据日期列计算澳大利亚财年?
SQL Server 计算澳大利亚财年查询方案
核心计算逻辑
澳大利亚财年规则为每年7月1日至次年6月30日,判断逻辑直观:
- 若日期的月份≥7,财年归属为「当前年份+1」
- 若日期的月份<7,财年归属为「当前年份」
最终拼接FY前缀即可匹配要求的展示格式
完整查询语句
SELECT *, CONCAT('FY ', CASE WHEN MONTH(SaleDate) >= 7 THEN YEAR(SaleDate) + 1 ELSE YEAR(SaleDate) END) AS AustralianFinancialYear FROM Sales
效果验证
结果完全符合规则要求:
2019年6月10日:月份为6<7,返回 FY 2019
2019年7月5日:月份为7≥7,返回 FY 2020
可选变体(仅返回财年数字)
如果不需要FY 前缀,只需要返回财年的数字值,可使用以下写法:
SELECT *, CASE WHEN MONTH(SaleDate) >= 7 THEN YEAR(SaleDate) + 1 ELSE YEAR(SaleDate) END AS AustralianFinancialYear FROM Sales
注意事项
- 如果
SaleDate存在空值,计算结果会返回NULL,可根据业务需求用ISNULL或COALESCE函数设置默认值即可
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

