我有一个会计年度开始日期,可以更改。今天也给出了日期:我需要根据这个会计年度开始日期获得当前的财政季度(3个月期间)。
然后我需要在这个3个月的财政季度期间从日期表中选择。
例如:
财年开始日期: 2017年5月,当前日期: 9/14/2017
基于此,我们应该在第二季度,当前 财政季度 8月到10月。
从日期表中,选择8月到10月的所有日期。
同样,会计年度开始日期将在不同情况下发生变化。
如何在MySQL中解决这个问题?
答案 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