mysql查询今天昨天本周...等数据及常用时间函数『亲测』

今天

select * from 表名 where DATEDIFF(NOW(), 时间字段) = 0

昨天

select * from 表名 where DATEDIFF(NOW(), 时间字段) = 1

近7天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(时间字段)

本周

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( CURDATE(), '%Y%m')

上月

select * from 表名 where DATE_FORMAT(时间字段, '%Y%m') - DATE_FORMAT(CURDATE(), '%Y%m') = -1

SQL中常用的日期操作函数

函数 描述 例子(使用) 查询结果
NOW() 返回当前日期和时间 SELECT NOW(); 2018-09-19 20:57:43
CURDATE() 返回当前日期 SELECT CURDATE(); 2018-09-19
YEARWEEK(date, mode) 返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一 SELECT YEARWEEK("2017-06-15"); 201724
WEEK(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53 SELECT WEEK('2011-11-11 11:11:11') 45
DATE_FORMAT(d,f) 按表达式 f的要求显示日期 d SELECT DATE_FORMAT('2011-02-15 12:32:59','%Y-%m-%d %H:%i:%S') 2011-02-15 12:32:59
DATE() 从日期或日期时间表达式中提取日期值 SELECT DATE("2017-06-15"); 2017-06-15
DATE_SUB(date,INTERVAL expr type) 函数从日期减去指定的时间间隔。 SELECT DATE_SUB(DATE("2017-06-15"),INTERVAL 2 DAY) 2017-06-13
DATEDIFF(d1,d2) 计算日期 d1减去>d2 之间 相隔的天数 SELECT DATEDIFF('2021-04-01',DATE('2021-04-02')) -1

你可能感兴趣的:(mysql查询今天昨天本周...等数据及常用时间函数『亲测』)