1、基本函数
SELECT CURDATE(), --当前日期
CURTIME(), --当前时间
NOW(), --当前日期+时间
SYSDATE()
2、获取 日期、时间的特定部分
SELECT YEAR(NOW()), -- 年
MONTHNAME(NOW()), -- 月的名称
WEEK(NOW()), -- 一年中的第几周
DAYNAME(NOW()), -- 这一天是这一周的周几
HOUR(NOW()), -- 小时
MINUTE(NOW()), -- 分钟
EXTRACT(YEAR FROM NOW()),
EXTRACT(QUARTER FROM NOW()),
EXTRACT(MONTH FROM NOW()),
EXTRACT(DAY FROM NOW()),
EXTRACT(YEAR FROM NOW()),
EXTRACT(HOUR FROM NOW()),
EXTRACT(MINUTE FROM NOW()),
EXTRACT(SECOND FROM NOW()),
EXTRACT(YEAR_MONTH FROM NOW()), -- 格式:YYYYMM 201606
EXTRACT(DAY_HOUR FROM NOW()), -- 格式:DDHH 2418
EXTRACT(DAY_MINUTE FROM NOW()), -- 格式:DDMM 2405
EXTRACT(DAY_SECOND FROM NOW()),
EXTRACT(HOUR_MINUTE FROM NOW()),
EXTRACT(HOUR_SECOND FROM NOW()),
EXTRACT(MINUTE_SECOND FROM NOW())
3、获取日期的特殊函数
SELECT DAYOFYEAR(NOW()), -- 一年中的第几天
DAYOFMONTH(NOW()), -- 一个月中的第几天
DAYOFWEEK(NOW()), -- 一周中的第几天,周日作为第1天
WEEKOFYEAR(NOW()), -- 一年中的第几周
WEEKDAY(NOW()), -- 周几,周一作为第0天
YEARWEEK(NOW()), -- 一年中的第几周,格式为:201625
LAST_DAY(NOW()) -- 当前日期所在月份的最后一天
4、日期、时间运算
SELECT DATE_ADD(NOW(),INTERVAL 10 YEAR), -- 增加日期
DATE_ADD(NOW(),INTERVAL 10 MONTH),
DATE_ADD(NOW(),INTERVAL 10 DAY),
DATE_ADD(NOW(),INTERVAL 10 HOUR),
DATE_ADD(NOW(),INTERVAL 10 MINUTE),
DATE_ADD(NOW(),INTERVAL 10 SECOND),
DATE_SUB(NOW(),INTERVAL 10 DAY), -- 减少日期
DATE_SUB(NOW(),INTERVAL -10 DAY),
DATE_SUB(NOW(),INTERVAL -10 HOUR),
DATEDIFF(DATE_ADD(NOW(),INTERVAL 8 HOUR),NOW()), -- expr1 减去 expr2 得到的天数
DATEDIFF(DATE_ADD(NOW(),INTERVAL 9 HOUR),NOW()), -- 在相减时,只是做日期部分的计算,不考虑时
DATEDIFF(NOW(),'2016-06-05'),
PERIOD_ADD(201605,8), -- 给YYMM、YYYYMM 加上N个月
PERIOD_DIFF(201605,201701), -- expr2 减去 expr1 得到的月数
TIMEDIFF('05:00:00','00:00:00') -- expr1 减去 expr2 得到的 时间型数据,不支持这种格式 INTERVAL 10 MINUTE
5、日期、时间运算的增强版本
SELECT TIMESTAMP(NOW()), -- 把日期时间 转化为 时间戳类型
TIMESTAMP(NOW(),'01 01:01:01'), -- 转换类型的同时,会加上 expr2
TIMESTAMPADD(DAY,5,NOW()), -- 增加日期 5天
TIMESTAMPDIFF(DAY,NOW(),NOW()+INTERVAL 1 DAY), -- 日期减法,可以指定 具体的单位
TIMESTAMPDIFF(SECOND,NOW(),NOW())
6、日期、时间的转化和构造
SELECT TIME_TO_SEC(CURTIME()), -- 时间转化为秒数:67622
SEC_TO_TIME(TIME_TO_SEC(CURTIME())), -- 秒数转化为时间:18:47:02
TO_DAYS(NOW()), -- 日期转化为天数:736504
FROM_DAYS(TO_DAYS(NOW())), -- 天数转化为日期:2016-06-24
MAKEDATE(2015,32), -- 构造日期:expr1为年,expr2为天,这里是:2015-02-01
MAKETIME(10,11,11) -- 构造时间:时 分 秒
7、 日期、时间的格式化以及获取格式
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'), -- 把日期时间 按照一定的格式,转化为字符串格式
TIME_FORMAT(NOW(),'%H:%i:%s'),
GET_FORMAT(DATE,'usa'), -- 获取格式,expr1:DATE,TIME,DATETIME, expr2:usa,interval,iso
GET_FORMAT(TIME,'usa'),
GET_FORMAT(DATETIME,'usa')
8、 unix时间戳、utc时间
SELECT UTC_DATE(),
UTC_TIME(),
UTC_TIMESTAMP(),
UNIX_TIMESTAMP(NOW()),
FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())),
FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()),'%Y-%m-%d %H:%i:%s')