我有一个财政年度开始日期,这是可以改变的。另外,今天的日期:我需要得到当前的财政季度(3个月)的基础上,这个财政年度的开始日期。
然后,我将需要做一个选择从一个表的日期,只有在这三个月的财政季度期间。
例如:
同样,财政年度开始日期在不同情况下也会发生变化。
如何在MySQL中解决这个问题?
发布于 2017-09-14 20:29:10
您可以使用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 3http://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 monthhttp://rextester.com/ZFW6858
发布于 2017-09-14 20:28:30
我将使用以下功能:
DATE_ADD(DATE_FORMAT('2017-05-12', '%Y-%m-01'), INTERVAL 3 MONTH);如果有任何进一步的帮助,请告诉我。
泰德。
https://stackoverflow.com/questions/46227301
复制相似问题