首页 > 解决方案 > Mysql:如何获取从去年 7 月到当前日期的数据

问题描述

我知道如何获取 7 月的数据

SELECT * FROM tableName 
   WHERE MONTH(created) = 7

但是如何获取去年 7 月到当前日期之间的数据?

标签: mysqlsql

解决方案


根据您的查询,我会选择:

SELECT * FROM tableName 
WHERE MONTH(created) = 7 
AND (
( MONTH(CURDATE()) <= 7 AND YEAR(created) = YEAR(CURDATE()) - 1 )
OR 
( MONTH(CURDATE()) > 7 AND YEAR(created) = YEAR(CURDATE()) )
)

如果您想要(就像您在评论中询问的那样)自那​​时以来的数据,请使用:

SELECT * FROM tableName 
    WHERE created <= CURDATE()
    AND (
    (
    MONTH(CURDATE()) <= 7
    AND created >= DATE_SUB(DATE_FORMAT(CURDATE(), '%Y-07-01'), INTERVAL 1 YEAR)
    )
    OR
    (
    MONTH(CURDATE()) > 7
    AND created >= DATE_FORMAT(CURDATE(), '%Y-07-01')
    ));

推荐阅读