最常见(今天;昨天;本周;本月)
今天;
SELECT * FROM ;表; WHERE TO_DAYS(字段) = TO_DAYS(NOW())昨天;
第一种;
SELECT * FROM ;表; WHERE DATEDIFF(,NOW())=-1;
第二种;
SELECT * FROM ;表; WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 字段) <= 1本周;
SELECT * FROM ;表; WHERE YEARWEEK(date_format(字段,%Y-%m-%d;)) = YEARWEEK(now()); 其中%Y-%m-%d表示格式化日期成 ;2020-01-01;这样子上周;
SELECT * FROM ;表; WHERE YEARWEEK(date_format(字段,%Y-%m-%d;)) = YEARWEEK(now()) - 1;上n周是 - n ;下一周是 ; 1;下n周是 ; n;本月;
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;上n月是 = n;下月是 = - 1;下n月是 - n;本季度;
SELECT * FROM ;表; WHERE quarter(字段)=quarter(now())上季度;
SELECT * FROM ;表; WHERE QUARTER(字段)=QUARTER(DATE_ADD(NOW(),INTERVAL -1 QUARTER)) 其中 -1改为1的话就是下季度;以此类推今年;
SELECT * FROM ;表; WHERE YEAR(字段) = YEAR(NOW())去年;
SELECT * FROM ;表; WHERE YEAR(字段) = YEAR(DATE_ADD(NOW(),INTERVAL -1 YEAR))其中 -1改为1的话就是明年;以此类推
常见的关于日期的函数
DATE_ADD() ;函数向日期添加指定的时间间隔;日期增加;;
例;SELECT id,DATE_ADD(create_time(你的字段),INTERVAL 15 DAY) AS date FROM order 函数的作用;把查询出来的create_time加上15天
DATE_SUB() ;函数从日期减去指定的时间间隔;日期减少;;
例;SELECT id,DATE_SUB(create_time(你的字段),INTERVAL 15 DAY) AS date FROM order 函数的作用;把查询出来的create_time减少15天
DATEDIFF(); 函数返回两个日期之间的天数;前面的日期减后面的日期;
例;SELECT shop_name,open_time,end_time, DATEDIFF(end_time,open_time) AS totalDay FROM shop 函数的作用;算出商店的开店时长
DATE_FORMAT() ;函数用于以不同的格式显示日期/时间数据;日期格式化;
例1;SELECT shop_name,DATE_FORMAT(open_time,%Y-%m-%d;) open_time,end_time FROM shop
例子2;
SELECT shop_name,DATE_FORMAT(open_time,%Y-%M-%d-%u-%W;) open_time,end_time FROM shop 注;M月的英文;u周;00-53;星期一是一周的第一天,W星期名
NOW() 返回当前的日期和时间。
CURDATE() 返回当前的日期。
CURTIME() 返回当前的时间。
5,6,7的区别如下图;
EXTRACT(); 函数用于返回日期/时间的单独部分;比如年、月、日、小时、分钟等等
例;SELECT shop_name, EXTRACT( YEAR FROM open_time ) AS YEAR , EXTRACT( MONTH FROM open_time ) AS MONTH , EXTRACT( DAY FROM open_time ) AS DAY FROM shop