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')