gpt4 book ai didi

sql - 基于分手的日期拆分

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:35:02 24 4
gpt4 key购买 nike

给定一个起始日期、截止日期、会计年度系统。我想根据要求的分手获得给定持续时间内的所有分手持续时间。

分手是:
1) 每周:从周一到周日应该遵循这一点。
2) 每月:这应该是从一个月的第一天到月底。
3) 季刊 由于财政年度系统是 4 月至 3 月,因此季度分解应为 4 月至 6 月、7 月至 9 月、10 月至 12 月、1 月至 3 月
4) 半年: 由于财政年度系统是四月至三月,半年分手应该是四月至九月,十月至三月。
5) 年度: 由于财政年度系统是四月至三月,年度分解应为四月至三月。

下面用例子解释。
示例 1:
开始日期:2010 年 2 月 10 日
迄今为止:2010 年 2 月 10 日
会计年度制:Apr to Mar

每周分手:2010 年 2 月 8 日至 2010 年 2 月 14 日
每月分手:2010 年 2 月 1 日至 2010 年 2 月 28 日
季度分割:2010 年 1 月 1 日至 2010 年 3 月 31 日
半年分手:Oct-01-2009 至 Mar-31-2010
年度分解:2009 年 4 月 1 日至 2010 年 3 月 31 日

我正在寻找在 PostgreSQL 8.2 中解决此问题的方法/算法。

这篇文章与此处发布的问题类似: Date split-up based on Fiscal Year

最佳答案

与其尝试在代码中执行此操作,还不如使用以日期为键并具有期间属性的日历表。
例如

CREATE TABLE calendar_day (
day_date DATE PRIMARY KEY,
week_number INTEGER NOT NULL,
month_number SMALLINT NOT NULL,
quarter_number SMALLINT NOT NULL,
demi_year_number SMALLINT NOT NULL,
fiscal_year SMALLINT NOT NULL);

这可以使用 generate_series() 和 postgresql 日期函数很容易地填充,然后用于根据您希望使用的日期标准加入

关于sql - 基于分手的日期拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2353983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com