一、YEAR()、MONTH()、HOUR()
1、 语法
YEAR(DATE)
返回日期的年份。
MONTH(DATE)
返回日期的月份
DAY(DATE)
返回日期的日
HOUR(time)
返回时间的小时。 对于一天时间值,返回值的范围是0到23。 但是,TIME值的范围实际上要大得多,所以HOUR可以返回大于23的值。
MINUTE(time)
返回时间分钟,范围为0到59。
SECOND(time)
返回时间秒数,范围为0到59。
2、举例
SELECT YEAR('2018-05-20'); # 2018
SELECT YEAR(20180520); # 2018
SELECT MONTH('2018-05-20'); # 5
SELECT DAY('2018-05-20'); # 20SELECT hour('12:13:14'); # 12
SELECT hour('122:13:14'); # 122
SELECT hour('12-13-14'); # 0
SELECT hour('2008-09-10 12:13:14'); # 12
SELECT hour('2008-09-10 122:13:14'); # null
SELECT hour('2008-09-10 12-13-14'); # 12SELECT minute('12:13:14'); # 13
SELECT minute('12:60:14'); # null
SELECT minute('12-13-14'); # 0
SELECT minute('2008-09-10 12:13:14'); # 13
SELECT minute('2008-09-10 122:13:14'); # null
SELECT minute('2008-09-10 12-13-14'); # 13SELECT second('12:13:14'); # 14
SELECT second('12:13:60'); # null
SELECT second('12-13-14'); # 12
SELECT second('2008-09-10 12:13:14'); # 14
SELECT second('2008-09-10 122:13:14'); # null
SELECT second('2008-09-10 12-13-14'); # 14
二、返回当前日期和时间的函数
1、语法
SELECT NOW();
SELECT CURRENT_TIMESTAMP();
SELECT CURRENT_TIMESTAMP;
SELECT LOCALTIME();
SELECT LOCALTIME;
SELECT LOCALTIMESTAMP();
SELECT LOCALTIMESTAMP;注意:
SELECT SYSDATE();
-- sysdate() 日期时间函数跟 now() 类似,
-- 不同之处在于:now() 在执行开始时值就得到了;sysdate() 在函数执行时动态得到值。
-- 看下面的例子就明白了:
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE(); SELECT CURDATE();-- 当前日期
SELECT CURRENT_DATE();-- 当前日期:等同于 CURDATE()
SELECT CURRENT_DATE;-- 当前日期:等同于 CURDATE() SELECT CURTIME();-- 当前时间
SELECT CURRENT_TIME();-- 当前时间:等同于 CURTIME()
SELECT CURRENT_TIME;-- 当前时间:等同于 CURTIME() -- 获得当前 UTC 日期时间函数
SELECT UTC_TIMESTAMP(), UTC_DATE(), UTC_TIME()
-- MySQL 获得当前时间戳函数:current_timestamp, current_timestamp()
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP();-- 2017-05-15 10:32:21 | 2017-05-15 10:32:21