首页 > 解决方案 > 半年(财政年度)的通用开始和结束日期,PostgreSQL

问题描述

我想为给定日期生成通用的半年开始和结束日期。

  1. 如果我有2019-01-10,我想返回2018-10-01&2019-03-31
  2. 如果我有2019-07-01,我想返回2019-04-01&2019-09-30

我可以得到半年数(1或2)和年份:

这类似于Quarter start & end date,但我需要半年一次。财政年度总是从当年的四月到三月。不需要单个函数的结果

标签: postgresql

解决方案


您可以尝试从输入日期中减去 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 个月年度。一旦我们这样做了,我们就可以很容易地找出每个日期是从一年中的哪一半开始的。


推荐阅读