Mysql根据当前月份的上一季度月份 选择行

问题描述 投票:1回答:2

我想查询行以查看基于上一季度月份​​的注册记录,例如:

当前月/年:2018年1月

查询应按注册月份显示所有记录,即2017年10月,2017年7月,2017年4月等。

我使用下面的查询,但只能选择最近3个月的行。

SELECT name, date, amount, agreement, bank
FROM `account`
WHERE (YEAR(date) = YEAR(CURRENT_DATE - INTERVAL 3 MONTH) AND MONTH(date) = MONTH(CURRENT_DATE - INTERVAL 3 MONTH))
mysql sql
2个回答
0
投票

你可以像这样算术:

select a.*
from account a
where mod(month(date), 3) = mod(month(current_date), 3);

您似乎了解如何处理年份组件,但类似于:

and date >= curdate() - interval 1 year

0
投票

手动试试这个

select *
from account 
Where current_date >= dateadd(year, -1, Getdate())
    And Month(current_date) In (
            Month(Getdate()), 
            (Case When Month(Getdate())+3 > 12 Then Month(Getdate())+3-12 Else Month(Getdate())+3 End), 
            (Case When Month(Getdate())+6 > 12 Then Month(Getdate())+6-12 Else Month(Getdate())+6 End), 
            (Case When Month(Getdate())+9 > 12 Then Month(Getdate())+9-12 Else Month(Getdate())+9 End)
            )
© www.soinside.com 2019 - 2024. All rights reserved.