select * from `user` where to_days(birthday) = to_days(CURDATE());
select * from `user` where to_days(CURDATE()) - to_days(birthday)<=1;
select * from `user` where birthday > DATE_SUB(CURDATE(),INTERVAL 7 DAY);
select * from `user` where birthday > DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
select * from `user` where birthday > DATE_SUB(CURDATE(), INTERVAL 1 YEAR);
select * from `user` where quarter(birthday) = quarter(CURDATE());
select * from `user` where quarter(birthday) = quarter(DATE_SUB(CURDATE(), INTERVAL 1 QUARTER));
select * from `user` where year(CURDATE()) - year(birthday) = 28 ;
select * from `user` where month(birthday) = 8 ;
select * from `user` where date_format(birthday,'%Y-%m-%d')='2017-07-07';
select * from `user` where birthday between '1888-5-1 00:00:00' and '2017-9-3 00:00:00';
select * from `user` where birthday > '1989-5-1' and birthday < '2017-5-1';
mysql日期与字符串转换函数
字符串转日期:STR_TO_DATE('2019-07-25 00:00:33', '%Y-%m-%d %H:%i:%s') ,走索引
日期转字符串:DATE_FORMAT('2019-07-25 00:00:33', '%Y-%m-%d %H:%i:%s'),不走索引
方式一、between...and(推荐)
SELECT * FROM k_student WHERE create_time between '2019-07-25 00:00:33' and '2019-07-25 00:54:33'
方式二、大小于号
SELECT * FROM k_student WHERE create_time >= '2019-07-25 00:00:33' AND create_time <= '2019-07-25 00:54:32'
方式三、转换为UNIX_TIMESTAMP比较,create_time若加了索引,不走索引
SELECT * FROM k_student WHERE UNIX_TIMESTAMP(create_time) between UNIX_TIMESTAMP('2019-07-25 00:00:33') and UNIX_TIMESTAMP('2019-07-25 00:54:33')