sql - SQL - 计算每年相同日期之间的日期
问题描述
我有一个包含以下行的表:
date
2018-09-01
2018-10-01
2019-01-01
2019-09-01
2020-03-01
2020-08-01
假设财政年度从上一年的 10 月开始,到当年的 9 月结束。所以 2020 财年将从2019-10-01
到2020-09-30
。我正在尝试计算每个会计年度内的日期,因此创建下表:
date_count fiscal_year
1 FY18
3 FY19
2 FY20
我尝试了以下方法来获得一年:
SELECT count(*) as date_count, 'FY18' as fiscal_year
FROM table_name
WHERE date between '2017-10-01' and '2018-09-30'
我得到
date_count fiscal_year
1 FY18
但我需要在每个财政年度都这样做。我在网上看到过类似的答案,但没有一个包含日期的答案。我需要使用递归查询吗?
解决方案
只需添加 3 个月并提取年份:
select t.*,
year(dateadd(month, 3, date)) as fiscal_year
from t;
推荐阅读
- reactjs - 如何从“上传文件”组件中提取文件名并将它们显示在 UI 上的列表中?
- linux - Ubuntu - 我无法使用 sudo 启动应用程序和运行命令
- json - 仅保留具有字符串值的字段
- php - 浏览器重新启动时删除 Httponly Cookie
- c# - 有没有一种简单的方法可以摆脱这个 IF 循环?
- json - 解决这个简单的(?)JSONPath
- ios - muteLocalVideoStream 没有将agora中的视频静音
- html - 在不使用 CSS 位置的情况下重叠 PNG 图像:相对
- c# - 如何修复 OCR 的倾斜图像?
- java - 使用 iText 读取图像签名流/对象..是黑色背景和白色前景,如何反转