当前位置: 首页 > 面试题库 >

根据会计年度划分日期

芮叶秋
2023-03-14
问题内容

给定“ 从日期” ,“ 到日期” 和“ 会计年度”系统
,我想获得基于“会计年度”系统的给定“从”和“截止日期”内的所有拆分期限。下面用示例说明:

示例1: 会计年度系统:4月至3月

从日期:2008年1月5日到日期:2008年5月15日

根据会计年度系统,工期应分为:

Jan-05-2008 to Mar-31-2008
Apr-01-2008 to May-15-2008

示例2: 会计年度系统:4月至3月

从日期:2008年1月17日到日期:2009年5月20日

根据会计年度系统,工期应分为:

Jan-17-2008 to Mar-31-2008
Apr-01-2008 to Mar-31-2009
Apr-01-2009 to May-20-2009

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

问候,

加纳姆


问题答案:

我实际上很喜欢Andomar的解决方案(添加了自动填充Periods表的流程),但出于乐趣,这里的解决方案不需要它。

CREATE TABLE your_table (start_date date, end_date date);
INSERT INTO your_table VALUES ('Jan-17-2008', 'May-20-2009');

SELECT
    GREATEST(start_date, ('04-01-'||series.year)::date) AS year_start,
    LEAST(end_date, ('03-31-'||series.year + 1)::date) AS year_end
FROM
    (SELECT
        start_date,
        end_date,
        generate_series(
            date_part('year', your_table.start_date - INTERVAL '3 months')::int,
            date_part('year', your_table.end_date - INTERVAL '3 months')::int)
    FROM your_table) AS series(start_date, end_date, year)
ORDER BY
    start_date;


 类似资料:
  • 问题内容: 以下数据库视图将日期截断为会计年度(4月1日): 这使我们能够根据今天的日期计算当前会计年度。 如何简化或优化此计算? 问题答案:

  • 问题内容: 我在sql中有一个用户表,他们每个都有生日。我想将他们的出生日期转换为他们的年龄(仅年),例如日期:年龄:14,并将更改为年龄: 在这里,我想显示用户的日期: 问题答案: 功能:, MySQL > = 5.0.0 功能:,

  • 问题内容: Oracle是否具有内置功能来根据其各个组成部分(年,月和日)创建仅对缺失数据返回null的日期? 我知道,但是我需要首先编写一个字符串,并且运算符和函数都无法轻松处理丢失的数据: 只要是我们最终和: 问题答案: 例如,您可以使用: 不幸的是,Oracle没有一种方法(如果可能)进行转换,否则将返回NULL。SQL Server最近为此目的而引入。 一种选择是为失败的转换编写带有异常处

  • 本文向大家介绍C#根据年月日计算星期几的函数,包括了C#根据年月日计算星期几的函数的使用技巧和注意事项,需要的朋友参考一下 DateTime.Now.ToString("dddd",new System.Globalization.CultureInfo("zh-cn")); 今天在网上看见一些关于 C#实现的根据年月日计算星期几 的介绍:  算法如下: 基姆拉尔森计算公式 W= (d+2*m+3

  • 本文向大家介绍jQuery实现根据生日计算年龄 星座 生肖,包括了jQuery实现根据生日计算年龄 星座 生肖的使用技巧和注意事项,需要的朋友参考一下 以上就是本文的全部内容,希望对大家有所帮助,谢谢对呐喊教程的支持!

  • 本文向大家介绍Python根据当前日期取去年同星期日期,包括了Python根据当前日期取去年同星期日期的使用技巧和注意事项,需要的朋友参考一下 业务的开发时候有一个需求,需要对比当前时间段和去年同星期的时间段的数据,例如当前时间是2019-04-11,是今年的第十五周的周四,如何去取去年的第十五周的周四呢? 查了好多资料没有对应的处理方法,于是自己写了这个方法,如果您有更好的方法,可以留言。 py