给定“ 从日期” ,“ 到日期” 和“ 会计年度”系统
,我想获得基于“会计年度”系统的给定“从”和“截止日期”内的所有拆分期限。下面用示例说明:
示例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实现根据生日计算年龄 星座 生肖的使用技巧和注意事项,需要的朋友参考一下 以上就是本文的全部内容,希望对大家有所帮助,谢谢对呐喊教程的支持!
问题内容: 我如何知道JavaScript的周数和年份来计算日期?对于第20周和2013年以获得5/16/2013,我正在尝试这样做: 问题答案: function getDateOfWeek(w, y) { var d = (1 + (w - 1) * 7); // 1st of January + 7 days for each week 这使用简单的周定义,即2013年的第20周是5月14日