-- 获取当前日期和时间
select now();
-- 获取当前日期
SELECT CURRENT_DATE();
-- 获取当前时间
SELECT CURRENT_TIME();
-- 获取当前日期和时间
SELECT CURRENT_TIMESTAMP();
-- unix日期时间戳
SELECT UNIX_TIMESTAMP(date);
-- 两个时间相差的时间数(expr1 − expr2) 必须是时间类型,格式要一致
select timediff('18:32:59','18:30:00');
select timediff('2018-01-06 18:32:59','2018-01-01 18:30:00');
-- 返回两个日期相减(expr1 − expr2 )相差的天数
select datediff('2018-07-30','2017-01-10');
-- 分别为给定的日期date加上(add)或减去(sub)
SELECT DATE_ADD('2018-07-30',INTERVAL 10 HOUR);
SELECT DATE_SUB('2018-07-30',INTERVAL 10 HOUR);
-- 格式化日期: DATE_FORMAT(date, format)
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
DATE_FORMAT函数,format字符串格式化date值:
- %S, %s 两位数字形式的秒( 00,01, ..., 59)
- %I, %i 两位数字形式的分( 00,01, ..., 59)
- %H 两位数字形式的小时,24 小时(00,01, ..., 23)
- %h 两位数字形式的小时,12 小时(01,02, ..., 12)
- %k 数字形式的小时,24 小时(0,1, ..., 23)
- %l 数字形式的小时,12 小时(1, 2, ..., 12)
- %T 24 小时的时间形式(hh:mm:ss)
- %r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)
- %p AM或PM
- %W 一周中每一天的名称(Sunday, Monday, ..., Saturday)
- %a 一周中每一天名称的缩写(Sun, Mon, ..., Sat)
- %d 两位数字表示月中的天数(00, 01,..., 31)
- %e 数字形式表示月中的天数(1, 2, ..., 31)
- %D 英文后缀表示月中的天数(1st, 2nd, 3rd,...)
- %w 以数字形式表示周中的天数( 0 = Sunday, 1=Monday, ..., 6=Saturday)
- %j 以三位数字表示年中的天数( 001, 002, ..., 366)
- %U 周(0, 1, 52),其中Sunday 为周中的第一天
- %u 周(0, 1, 52),其中Monday 为周中的第一天
- %M 月名(January, February, ..., December)
- %b 缩写的月名( January, February,...., December)
- %m 两位数字表示的月份(01, 02, ..., 12)
- %c 数字表示的月份(1, 2, ...., 12)
- %Y 四位数字表示的年份
- %y 两位数字表示的年份
- %% 直接值“%”