今天 SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS(now()) - TO_DAYS(时间字段名) <= 1; 近7天 SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名); 近30天 SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名); 本月 SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段名, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m'); 上一月 SELECT * FROM 表名 WHERE PERIOD_DIFF(DATE_FORMAT(now(), '%Y%m'), DATE_FORMAT(时间字段名, '%Y%m')) = 1; 查询本季度数据 SELECT * FROM 表名 WHERE QUARTER(时间字段名) = QUARTER(now()); 查询上季度数据 SELECT * FROM 表名 WHERE QUARTER(时间字段名) = QUARTER(DATE_SUB(now(), INTERVAL 1 QUARTER)); 查询本年数据 SELECT * FROM 表名 WHERE YEAR(时间字段名) = YEAR(now()); 查询上年数据 SELECT * FROM 表名 WHERE YEAR(时间字段名) = YEAR(DATE_SUB(now(), INTERVAL 1 YEAR)); 查询当前这周的数据 SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段名, '%Y-%m-%d')) = YEARWEEK(now()); 查询上周的数据 SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段名, '%Y-%m-%d')) = YEARWEEK(now())-1; 查询上个月的数据 SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段名, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),'%Y-%m'); SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段名, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m'); SELECT * FROM 表名 WHERE WEEKOFYEAR(FROM_UNIXTIME(时间字段名, '%y-%m-%d')) = WEEKOFYEAR(now()); SELECT * FROM 表名 WHERE MONTH(FROM_UNIXTIME(时间字段名, '%y-%m-%d')) = MONTH(now()); SELECT * FROM 表名 WHERE YEAR(FROM_UNIXTIME(时间字段名, '%y-%m-%d')) = YEAR(now()) AND MONTH(FROM_UNIXTIME(时间字段名, '%y-%m-%d')) = MONTH(now()); 查询当前月份的数据 SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段名, '%Y-%m') = DATE_FORMAT(now(), '%Y-%m'); 查询距离当前现在6个月的数据 SELECT * FROM 表名 WHERE 时间字段名 BETWEEN DATE_SUB(now(), INTERVAL 6 MONTH) AND now();
说明:本例子的查询字段默认都是*,为了提高性能,减轻数据库压力,最好根据需要更改为指定查询字段!
继续阅读
微信公众号
分享IT信息技术、北海生活的网站。提供北海本地化的信息技术服务。
1F
有用,收藏了