MySQL:从给定的开始日期和当前日期确定财务季度

时间:2017-09-14 19:58:23

标签: mysql sql

我有一个会计年度开始日期,可以更改。今天也给出了日期:我需要根据这个会计年度开始日期获得当前的财政季度(3个月期间)。

然后我需要在这个3个月的财政季度期间从日期表中选择。

例如:

  • 财年开始日期: 2017年5月,当前日期: 9/14/2017

    基于此,我们应该在第二季度,当前 财政季度 8月到10月

    从日期表中,选择8月到10月的所有日期。

同样,会计年度开始日期将在不同情况下发生变化。

如何在MySQL中解决这个问题?

2 个答案:

答案 0 :(得分:1)

我会使用以下功能:

DATE_ADD(DATE_FORMAT('2017-05-12', '%Y-%m-01'), INTERVAL 3 MONTH);

如果我能得到任何进一步的帮助,请告诉我。

泰德。

答案 1 :(得分:1)

您可以使用TIMESTAMPDIFF和整数除法的组合:

set @FiscalYearStartDate = '2017-05-01';
set @today = '2017-09-14';

select timestampdiff(month, @FiscalYearStartDate, @today) div 3 + 1;

http://rextester.com/HVBIE10213

要从表中获取与当前季度相同的日期的所有行:

select *
from myTable t
where timestampdiff(month, '2017-05-01', curdate()) div 3
    = timestampdiff(month, '2017-05-01', t.date) div 3

http://rextester.com/TLHD65717

如果您想使用索引,则需要更复杂的解决方案:

select *
from myTable t
where t.date >= '2017-05-01' + interval timestampdiff(month, '2017-05-01', curdate()) div 3 * 3 month
  and t.date <  '2017-05-01' + interval timestampdiff(month, '2017-05-01', curdate()) div 3 * 3 + 3 month

http://rextester.com/ZFW6858