如何使用SQLite根据记录创建日期计算对应财政年度
SQLite 财政年度列计算实现方案
实现逻辑
你的财年规则为每年3月1日至次年2月最后一天,对应财年命名格式为FY 起始年-结束年,核心判断逻辑如下:
- 若日期的月份≥3:财年起始年为日期所属年份,结束年为所属年份+1
- 若日期的月份<3:财年起始年为日期所属年份-1,结束年为日期所属年份
完整查询语句
假设你的数据表名为product_records,包含Product、created_date两个字段,查询语句如下:
SELECT Product AS "产品(Product)", created_date AS "created Date", CASE -- 判断月份是否大于等于3月 WHEN strftime('%m', created_date) >= '03' THEN 'FY ' || strftime('%Y', created_date) || '-' || (CAST(strftime('%Y', created_date) AS INTEGER) + 1) ELSE 'FY ' || (CAST(strftime('%Y', created_date) AS INTEGER) - 1) || '-' || strftime('%Y', created_date) END AS "Financial Year" FROM product_records;
如果你的created_date存储的是秒级时间戳,把strftime('%m', created_date)替换为strftime('%m', created_date, 'unixepoch')即可。
验证说明
用你给出的示例日期测试:
- 2019-05-28:月份为05≥03,返回
FY 2019-2020,符合预期 - 2020-01-15:月份为01<03,返回
FY 2019-2020,符合预期 - 2020-04-22:月份为04≥03,返回
FY 2020-2021,符合预期 - 2021-10-15:月份为10≥03,返回
FY 2021-2022,符合预期
内容的提问来源于stack exchange,提问作者Shambhu sharan
相关产品推荐
相关产品推荐

