mysql常用日期、时间查询
好记性不如烂笔头
select curdate(); --获取当前日期 select last_day(curdate()); --获取本月最后一天。 select DATE_ADD(curdate(),interval -day(curdate())+1 day); -- 获取本月第一天 select date_add(curdate()-day(curdate())+1,interval 1 month); -- 获取下个月的第一天 select date_sub(curdate()-day(curdate())+1,interval 1 month); -- 上个月第一天 select last_day(date_sub(curdate(),interval 1 month)); -- 上个月最后一天 select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual; --获取当前月的天数 select subdate(curdate(),date_format(curdate(),'%w')-1) -- 本周一 SELECT DATE_SUB(now(),INTERVAL WEEKDAY(now()) day); -- 本周一 select subdate(curdate(),date_format(curdate(),'%w')-7) -- 本周日 -- 前一秒 select SUBDATE(now(),interval 1 second); -- 前一分钟 select SUBDATE(now(),interval 1 minute); -- 前一个小时 SELECT date_sub(NOW(), interval 1 hour) -- 前一天某个时间点 SELECT date_sub(DATE_FORMAT(NOW(),'%Y-%m-%d 18:00:00'), interval 1 day) -- 前一天 SELECT date_sub(now(),interval 1 day) -- 前一月 后一月 date_sub(curdate(),interval 1 month) 表示 2013-04-20 date_sub(curdate(),interval -1 month) 表示 2013-06-20 -- 前一年 后一年 date_sub(curdate(),interval 1 year) 表示 2012-05-20 date_sub(curdate(),interval -1 year) 表示 2014-05-20 -- 字符串转日期 select str_to_date('2017-11-20', '%Y-%m-%d %H:%i:%s'); -- 时间转字符串 select date_format(now(), '%Y-%m-%d'); -- 字符串转时间戳 select unix_timestamp('2016-01-02'); -- 时间戳转时间 select from_unixtime(1451997924); -- 时间戳转字符串 select from_unixtime(1451997924,'%Y-%d'); -- 时间转时间戳 select unix_timestamp(now()); -- 查询前一天数据 select * from user_info where join_time BETWEEN date_sub(CURDATE(), INTERVAL 1 DAY) AND date_sub(DATE_FORMAT(NOW(), '%Y-%m-%d 23:59:59'),INTERVAL 1 DAY); -- 上周一 select subdate( date_add(subdate( date_add(curdate(), interval -1 day),date_format(date_add(curdate(), interval -1 day),'%w')-1), interval -2 day),date_format( date_add(subdate( date_add(curdate(), interval -1 day),date_format(date_add(curdate(), interval -1 day),'%w')-1), interval -2 day),'%w')-1); -- 上周日 select date_add(subdate( date_add(subdate( date_add(curdate(), interval -1 day),date_format(date_add(curdate(), interval -1 day),'%w')-1), interval -2 day),date_format( date_add(subdate( date_add(curdate(), interval -1 day),date_format(date_add(curdate(), interval -1 day),'%w')-1), interval -2 day),'%w')-1), interval 6 day);