首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:从给定的开始日期和当前日期确定会计季度

MySQL:从给定的开始日期和当前日期确定会计季度
EN

Stack Overflow用户
提问于 2017-09-14 19:58:23
回答 2查看 1.6K关注 0票数 0

我有一个财政年度开始日期,这是可以改变的。另外,今天的日期:我需要得到当前的财政季度(3个月)的基础上,这个财政年度的开始日期。

然后,我将需要做一个选择从一个表的日期,只有在这三个月的财政季度期间。

例如:

  • 财政年度开始日期:2017年5月,当前日期:9/14/2017 基于此,我们应该在第二季度,当前的财政季度是8月至10月。 从日期表中,选择从8月到10月的所有日期。

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-14 20:29:10

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

代码语言:javascript
复制
set @FiscalYearStartDate = '2017-05-01';
set @today = '2017-09-14';

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

http://rextester.com/HVBIE10213

要从一个表中获取与今天相同季度的日期的所有行,请执行以下操作:

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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

票数 2
EN

Stack Overflow用户

发布于 2017-09-14 20:28:30

我将使用以下功能:

代码语言:javascript
复制
DATE_ADD(DATE_FORMAT('2017-05-12', '%Y-%m-01'), INTERVAL 3 MONTH);

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

泰德。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46227301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档