一、根据时间查询数据
1.1. 常用时间函数
- to_days函数:给定一个日期date, 返回一个天数 (从年份0开始的天数 )。
select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate();
select * from table where date(column_time) = DATE(NOW());
- now()、current_timestamp():获取当前年月日时分秒
- curdate() 、current_date(): 获取当前年月日
- curtime()、current_time():获取当前时分秒
- dayofweek():一个星期的第几天(返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)
select DAYOFWEEK(CURDATE())
或者
select DAYOFWEEK(NOW())
- weekday():返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
select weekDay(CURDATE())
或者
select weekDay(NOW())
- dayofmonth():返回date的月份中日期,在1到31范围内
select DAYOFMONTH(CURDATE())
或者
select DAYOFMONTH(NOW())
- dayofyear():返回date在一年中的日数, 在1到366范围内。
select DAYOFYEAR(NOW())
- MONTH():返回date的月份,范围1到12
select MONTH(CURDATE())
- QUARTER():返回date一年中的季度,范围1到4
select QUARTER(CURDATE())
-
DATE():返回日期的年月日,类似于日期的格式化,比如DATE(NOW())和
DATE_FORMAT(NOW(),’%Y-%m-%d’)类似结果 -
DATEDIFF(date1,date2):函数返回两个日期之间的天数。
date1=date2时值为0,date1>date2时值为1,date1<date2值为-1 -
DATE_ADD() :函数向日期添加指定的时间间隔。
明天这个时候的日期:
SELECT DATE_ADD(NOW(),INTERVAL 1 day)
- DATE_SUB() :函数从日期减去指定的时间间隔。与DATE_ADD()相反,一个加一个减
- DATE_FORMAT() :函数用于以不同的格式显示日期/时间数据
格式化日期年月日时分秒,用途:数据库数据是datetime类型返回到页面,一般都要格式化一下
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %T')
1.2、常用的时间查询
- 查询当天数据
select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate();
- 查询一周数据
select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
- 查询一个月
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);