-- DATE():获取日期或日期时间表达式的日期部分
SELECT DATE('2017-06-15'),DATE('2017-06-15 12:12:12'),DATE(now())
-- time() 获取日期或日期时间表达式的时间部分
SELECT time('2012-12-12 12:12:12'),time('12:12:12'),time(now())
-- --------------------------------------------------------------------------年份
-- YEAR(d) 返回年份
SELECT YEAR("2017-06-15"),YEAR(CURDATE())
-- --------------------------------------------------------------------------季度
-- QUARTER(d) 返回季度数字
SELECT QUARTER('2011-11-11 11:11:11'),QUARTER(CURDATE())
-- --------------------------------------------------------------------------月份
-- MONTHNAME(d) 返回英文月份名称
SELECT MONTHNAME('2011-11-11 11:11:11'),MONTHNAME(CURDATE())
-- MONTH(d) 返回月份数字
SELECT MONTH('2011-05-11 11:11:11'),MONTH(CURDATE())
-- --------------------------------------------------------------------------星期
-- DAYNAME(d) 返回英文的星期
SELECT DAYNAME('2011-11-11 11:11:11'),DAYNAME(CURDATE())
-- WEEK(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53
SELECT WEEK('2011-1-1 11:11:11'),week(CURDATE())
-- WEEKDAY(d) 日期 d 是星期几,0 表示星期一,1 表示星期二
SELECT WEEKDAY('2017-06-15'),WEEKDAY(CURDATE())
-- WEEKOFYEAR(d) 返回日期(1-53)的日历周
SELECT WEEKOFYEAR('2011-1-1 11:11:11'),WEEKOFYEAR(CURDATE())
-- YEARWEEK(date, mode) 返回年份和星期,mode 中 0 表示周天,1表示周一,以此类推
SELECT YEARWEEK("2017-06-15"),YEARWEEK(CURDATE()),YEARWEEK(CURDATE(),6)
-- --------------------------------------------------------------------------天
-- DAYOFYEAR(d) 返回本年的第几天
SELECT DAYOFYEAR('2011-11-11 11:11:11'),DAYOFYEAR(CURDATE())
-- DAY(d)、DAYOFMONTH() 返回日期值 d 的日期部分
select DAY('2017-06-05'),DAYOFMONTH('2017-06-05'),DAY(now()),DAYOFMONTH(now())
-- DAYOFWEEK(d) 返回当周的第几天,注意1为周日,7为周六,周日为一周的开始
SELECT DAYOFWEEK('2011-11-11 11:11:11'),DAYOFWEEK(CURDATE())
-- --------------------------------------------------------------------------小时
-- HOUR() 返回小时值
select HOUR(now()),HOUR('14:28:25')
-- --------------------------------------------------------------------------分钟
-- MINUTE() 返回分钟数
SELECT MINUTE('1:2:03'),MINUTE(now())
-- --------------------------------------------------------------------------秒
-- SECOND() 返回秒数字
SELECT SECOND('1:2:3'),SECOND(now())
-- --------------------------------------------------------------------------微秒
-- MICROSECOND() 返回微妙数
SELECT MICROSECOND('2017-06-20 09:34:00.000023'),MICROSECOND(now()),MICROSECOND('09:34:00.000023')
-- --------------------------------------------------------------------------函数
-- EXTRACT(type FROM d) 从日期 d 中获取指定的值,type 指定返回的值。type可取值为:
MICROSECOND | 微妙 |
SECOND | 秒 |
MINUTE | 分钟 |
HOUR | 小时(24) |
DAY | 天 |
WEEK | 年周 |
MONTH | 月份 |
QUARTER | 季度 |
YEAR | 年份 |
SECOND_MICROSECOND | 秒-微妙 |
MINUTE_MICROSECOND | 分钟-秒-微妙 |
MINUTE_SECOND | 分钟-秒 |
HOUR_MICROSECOND | 小时(24)-分钟-秒-微妙 |
HOUR_SECOND | 小时(24)-分钟-秒 |
HOUR_MINUTE | 小时(24)-分钟 |
DAY_MICROSECOND | 小时(24)-分钟-秒-微妙 |
DAY_SECOND | 小时(24)-分钟-秒 |
DAY_MINUTE | 小时(24)-分钟 |
DAY_HOUR | 小时(24) |
YEAR_MONTH | 年-月 |
LAST_DAY(d) 返回给给定日期的那一月份的最后一天
SELECT LAST_DAY("2017-06-20"),LAST_DAY(CURDATE()),LAST_DAY(now())
MAKEDATE(year, day-of-year) 基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期
SELECT MAKEDATE(2017, 3);
MAKETIME(hour, minute, second) 组合时间,参数分别为小时、分钟、秒
SELECT MAKETIME(11, 35, 4);
SEC_TO_TIME(s) 将以秒为单位的时间 s 转换为时分秒的格式
SELECT SEC_TO_TIME(4320)
TIME_TO_SEC(t) 将时间 t 转换为秒
SELECT TIME_TO_SEC('1:12:00')
TIMESTAMP(expression, interval) 单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和
SELECT TIMESTAMP('2017-07-23', '13:10:11'),TIMESTAMP('2017:07:23'),TIMESTAMP(CURDATE())
-- --------------------------------------------------------------------------其他
-- UNIX_TIMESTAMP() 返回Unix时间戳
select UNIX_TIMESTAMP(now()-1),UNIX_TIMESTAMP()
-- UTC_DATE() 返回当前UTC日期
select UTC_DATE()
-- UTC_TIME() 返回当前UTC时间
select UTC_TIME()
-- UTC_TIMESTAMP() 返回当前UTC日期和时间
select UTC_TIMESTAMP()
-- FROM_UNIXTIME() 将Unix时间戳格式化为日期