postgresql - 半年(财政年度)的通用开始和结束日期,PostgreSQL
问题描述
我想为给定日期生成通用的半年开始和结束日期。
- 如果我有
2019-01-10
,我想返回2018-10-01
&2019-03-31
- 如果我有
2019-07-01
,我想返回2019-04-01
&2019-09-30
我可以得到半年数(1或2)和年份:
这类似于Quarter start & end date,但我需要半年一次。财政年度总是从当年的四月到三月。不需要单个函数的结果
解决方案
您可以尝试从输入日期中减去 3 个月,然后检查结果日期是否在上半年或下半年:
SELECT
CASE WHEN EXTRACT(month FROM input_date) - INTERVAL '3 MONTH'
BETWEEN 1 AND 6 THEN 1 ELSE 2 END AS fiscal_half
FROM yourTable;
这里的诀窍是将您的非标准财政年度转移回正常的 12 个月年度。一旦我们这样做了,我们就可以很容易地找出每个日期是从一年中的哪一半开始的。
推荐阅读
- php - 密码验证的身份验证错误问题
- f# - 创建具有无效值的 F# 记录时引发异常
- c# - 将图像(从可绘制文件夹)转换为 ByteArray
- python - 如何从现有样本数据中生成随机数据?
- python - eve 包的 pip install 安装了 bson 和 pymongo,这会破坏 pymongo
- c++ - C ++中的枚举不只是整数吗?
- ios - 在 TabBarController 上添加的自定义子视图不可点击
- r - NPM 依赖项插入符号 (^)
- django - 序列化程序验证数据中的 Django JSON 字段为无
- python-3.x - 保存 for 循环的输出以供将来在代码中使用