MySQL-获取某个季度和一年之前的时间的数据

时间:2019-02-21 10:33:46

标签: mysql date

我需要获取用户记录的MySQL结果,该记录具有“注册”日期,该日期发生在某年的某个季度之前。

例如,要获取数据(用户数,在2018年第三季度之前注册),我会执行以下请求:

SELECT count(userid) AS value 
FROM users 
WHERE QUARTER(registered) <= "3" && YEAR(registered) <= "2018"

但是,此请求给我的预期结果不理想(价值应低得多,看起来我仅获得2018年第三季度的结果,而没有获得任何年份的前几年的值)。如果我删除季度并仅检查Year之前的数据-这可以很好地工作并显示我使用的每年的正确结果。

为什么会发生这种情况以及如何通过Quarter正确获取价值?

1 个答案:

答案 0 :(得分:2)

您可以使用以下解决方案:

SELECT COUNT(userid) AS value 
FROM users 
WHERE YEAR(registered) < 2018 OR (
    YEAR(registered) = 2018 AND QUARTER(registered) <= 3
)

使用当前的SELECT,您将仅获得每年(2018年或更早)在第三季度或更早注册的所有用户。但是您可以计算2018年之前的年份的所有用户(在这种情况下该季度无关紧要)和当年的所有用户,但在指定的季度或更早的时间内。