MySQL 日期函数
一. 显示当前日期+时间
select now(); -- 2018-11-22 09:45:01 select now() + 0 ; -- 20181122094920 select now(3); -- 2018-11-22 09:50:05.382 select SYSDATE();-- 2018-11-22 09:45:01 select current_timestamp;-- 2018-11-22 09:45:01 select current_timestamp();-- 2018-11-22 09:45:01 select LOCALTIMESTAMP;-- 2018-11-22 09:45:01 select LOCALTIMESTAMP();-- 2018-11-22 09:45:01 select LOCALTIME;-- 2018-11-22 09:45:01 select LOCALTIME();-- 2018-11-22 09:45:01
二. 显示当前日期
select CURDATE();-- 2018-11-22 select CURRENT_DATE;-- 2018-11-22 select CURRENT_DATE();-- 2018-11-22
三. 显示当前时间
select curtime();-- 09:48:41 select CURRENT_TIME;-- 09:48:41 select CURRENT_TIME();-- 09:48:41
四. 显示时间的规定部分
-- 显示当前时间的时间戳 select unix_timestamp();-- 1542853166
-- 时间的年份 select year(now());-- 2018 select year('2018-11-22 10:02:03');-- 2018
-- 时间的月份 select month(now());-- 11 select month('2018-11-22 10:02:03');-- 11
-- 时间的天数 select day(now());-- 22 select day('2018-11-22 10:02:03');-- 22
-- 时间的小时数 select hour(now());-- 10 select hour('2018-11-22 10:02:03');-- 10
-- 时间的分钟数 select minute(now());-- 2 select minute('2018-11-22 10:02:03');-- 2
-- 时间的秒数 select SECOND(now());-- 3 select SECOND('2018-11-22 10:02:03');-- 3
-- 时间为一年中的第几周 select week(now()) ;-- 46 select week('2018-11-22 10:02:03') ;-- 46
-- 时间为一年中的第几季度 select quarter(now());-- 4 select quarter('2018-11-22 10:02:03');-- 4
五. 字符串,时间,时间戳之间的转换
-- 字符串转时间 select str_to_date('2018-11-22 08:09:30', '%Y-%m-%d %h:%i:%s');
-- 时间转字符串 select date_format(now(),'%Y-%m-%d %h:%i:%s'); -- 时间转时间戳 select unix_timestamp(); -- 1218290027 select unix_timestamp(now());-- 1542853292 -- 字符串转时间戳 select unix_timestamp('2008-08-08'); -- 1218124800 select unix_timestamp('2008-08-08 12:30:00'); -- 1218169800 -- 时间戳转时间 select from_unixtime(1218169800); -- '2008-08-08 12:30:00'
-- 时间戳转字符串 select from_unixtime(1218169800, '%Y-%m-%d %h:%i:%s'); -- '2008-08-08 12:30:00'
六. 日期时间运算函数
1. 两个日期之间相减
-- 两个日期相减(两个参数类型必须一样), 返回相差的时间数 select TIMEDIFF('2018-11-10 12:12:13', '2017-11-10 12:12:12');-- 838:59:59
-- 两个日期相减 返回的相差的天数 select DATEDIFF('2018-11-10 12:12:13', '2017-11-10 12:12:12');-- 365 select DATEDIFF('2018-11-10 12:12:13', '2017-11-10');-- 365
2. 日期加减固定时间
-- 分别为给定的日期date加上(add)或减去(sub)一个时间间隔值expr -- expr为加减的数值 unit为加减间隔类型 select DATE_ADD(now(), INTERVAL expr unit); select DATE_SUB(now(), INTERVAL expr unit); -- 给某个时间加一个小时 select DATE_ADD(now(), INTERVAL 1 HOUR); select DATE_ADD('2018-11-12 11:01:01', INTERVAL 1 HOUR);-- 2018-11-12 12:01:01 -- 给某个时间减 减1天1小时1分1秒 select DATE_SUB(now(), INTERVAL '1 01:01:01' DAY_SECOND); select DATE_SUB('2018-11-12 11:01:01', INTERVAL '1 01:01:01' DAY_SECOND);-- 2018-11-11 10:00:00 -- unit类型 -- HOUR 小时 -- MINUTE 分 -- SECOND 秒 -- MICROSECOND 毫秒 -- YEAR 年 -- MONTH 月 -- DAY 日 -- WEEK 周 -- QUARTER 季 -- YEAR_MONTH 年和月 -- DAY_HOUR 日和小时 -- DAY_MINUTE 日和分钟 -- DAY_SECOND 日和秒 -- HOUR_MINUTE 小时和分 -- HOUR_SECOND 小时和秒 -- MINUTE_SECOND 分钟和秒