Mysql中Date函数:CURDATE()函数返回当前的日期 日期格式:“2008-12-29”;CURTIME()返回当前时间;NOW()返回当前日期时间;具体格式如下
NOW() | CURDATE() | CURTIME() |
2008-12-29 16:25:46 | 2008-12-29 | 16:25:46 |
MySQL Date 函数
NOW() | 返回当前的日期和时间 | |
CURDATE() | 返回当前的日期 | |
CURTIME() | 返回当前的时间 | |
DATE() | 提取日期或日期/时间表达式的日期部分 | |
EXTRACT() | 返回日期/时间按的单独部分 | |
DATE_ADD() | 给日期添加指定的时间间隔 | |
DATE_SUB() | 从日期减去指定的时间间隔 | DATE_SUB(NOW(),INTERVAL 1 YEAR) |
DATEDIFF() | 返回两个日期之间的天数 | |
DATE_FORMAT() | 用不同的格式显示日期/时间 | date_format('2023-7-20','%Y-%m-%d') |
一下例子中,a为数据表,recordtime为日期字段
1 查询当天
select * from a where to_days(recordtime)=to_days(now())
to_days函数:返回从0000年(公元1年)至当前日期的总天数
2 查询当年当月
select * from a
where month(recordtime)=month(now()) and year(recordtime)=year(now())
2.1 查询上年同月
select * from a
where month(recordtime)=month(now()) and year(recordtime)=year(now())-1
3 查询当年
select * from a where year(recordtime)=year(now())
4 查询当周
select * from a
where yearweek(date_format(recordtime,'%Y-%m-%d'),1)= yearweek(NOW(),1)
4.1 查询上周
select * from a
where yearweek(date_format(recordtime,'%Y-%m-%d'),1)= yearweek(DATE_SUB(date_format(now(),'%Y-%m-%d'),INTERVAL 7 DAY),1)
或者
select * from a
where yearweek(date_format(recordtime,'%Y-%m-%d'),1)= yearweek(NOW(),1) -1
部分查考如下资料:(15条消息) Mysql 中统计年度,季度,月度数据_mysql 年份 季度 销量_小糖糖僧僧的博客-CSDN博客