日期、时间戳、字符串互相转换
#时间日期转字符串 相当与Oracle中的to_char函数
select date_format(now(), '%Y-%m-%d');
#结果:2017-02-27
#时间转时间戳
select unix_timestamp(now());
#结果:1488160428
#字符串转时间
select str_to_date('2017-02-27', '%Y-%m-%d %H');
#结果:2017-02-27 00:00:00
select str_to_date('2017-10-16 15:30:28','%Y-%m-%d %H:%i:%s');
#结果 2017-10-16 15:30:28
#注意 年是大写‘Y’,小时也必须是大写‘H’ (如果其他为大写,则得到结果为null)
#字符串转时间戳
select unix_timestamp('2017-02-27');
#结果:1488124800
#时间戳转时间
select from_unixtime(1488160428);
#结果:2017-02-27 09:53:48
#时间戳转字符串
select from_unixtime(1488160428,'%Y-%m-%d %T');
#结果:2017-02-27 09:53:48
实例:
SELECT DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s'); -- 获取当天零点
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 DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual; --获取当前月的天数