1. 获取日期、时间
函数 | 作用 |
---|
CURDATE(), CURRENT_DATE() | 返回当前日期,只包含年月日 |
CURTIME() | 返回当前时间,只包含时分秒 |
NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP() | 返回当前系统日期和时间 |
UTC_DATE() | 返回UTC(世界标准时间) 日期 |
UTC_TIME() | 返回UTC(世界标准时间) 时间 |
2. 日期与时间戳的转换
函数 | 作用 |
---|
UNIX_TIMESTAMP() | 以UNIX时间戳的形式返回当前时间。SELECT UNIX_TIMESTAMP() ->1634348884 |
UNIX_TIMESTAMP(date) | 将时间date以UNIX时间戳的形式返回。 |
FROM_UNIXTIME(timestamp) | 将UNIX时间戳转换为普通格式的时间 |
3. 获取月份、星期、星期数、天数等函数
函数 | 作用 |
---|
YEAR(date) / MONTH(date) / DAY(date) | 返回具体的日期值 |
HOUR(time) / MINUTE(time) / SECOND(time) | 返回具体时间值 |
MONTHNAME(date) | 返回月份:January |
DAYNAME(date) | 返回星期几:MONDAY |
WEEKDAY | 返回周几:周一是0,周二是1,…,周日是6 |
QUARTER(date) | 返回日期对应的季度,范围1~4 |
WEEK(date), WEEKOFYEAR(date) | 返回一年中的第几周 |
DAYOFYEAR(date) | 返回日期是一年中的第几天 |
DAYOFMONTH(date) | 返回日期位于所在月份的第几天 |
DAYOFWEEK(date) | 返回周几,注意:周日是1,…,周六是7 |
4. 日期的操作函数
函数 | 作用 |
---|
EXTRACT(typr FROM date) | 返回指定日期中特定的部分,type指定返回的值 |
EXTRACT(typr FROM date)函数中 type
的取值与含义:
5. 时间和秒钟转换的函数
函数 | 作用 |
---|
TIME_TO_SEC(time) | 将time转换为秒并返回结果值。转换公式为:小时×3600+分钟×60+秒 |
SEC_TO_TIME(seconds) | 将seconds转换为包含时分秒的时间 |
6. 计算日期和时间的函数
函数 | 作用 |
---|
DATE_ADD(datatime, INTERVAL expr type), ADDDATE(date, INTERVAL expr type) | 返回与给定日期时间相差INTERBAL时间段的日期时间 |
DATE_SUB(date, INTERVAL expr type), SUBDATE(date, INTERVAL expr type) | 返回与date相差INTERVAL时间间隔的日期 |
上述函数中的 type
的取值:
第2组:
函数 | 作用 |
---|
ADDTIME(time1, time2) | 返回time1加上time2的时间。当time2为一个数字时,代表的是秒,可以为负数 |
SUBTIME(time1, time2) | 返回time1减去time2后的时间。当time2为一个数字时,代表的是秒,可以为负数 |
DATEDIFF(date1, date2) | 返回date1-date2的日期间隔天数 |
TIMEDIFF(time1, time2) | 返回time1-time2的时间间隔 |
FROM_DAYS(N) | 返回从0000年1月1日起,N天以后的日期 |
TO_DAYS(date) | 返回日期date距离0000年1月1日的天数 |
LAST_DAY(date) | 返回date所在月份的最后一天的日期 |
MAKEDATE(year, n) | 针对给定年份与所在年份中的天数返回一个日期 |
MAKETIME(hour, minute, second) | 将给定的时分秒组合成时间并返回 |
PERIOD_ADD(time, n) | 返回time加上n后的时间 |
7. 日期的格式化与解析
函数 | 作用 |
---|
DATE_FORMAT(date, fmt) | 按照字符串fmt格式化日期date值 |
TIME_FORMAT(time, fmt) | 按照字符串fmt格式化时间time值 |
GET_FORMAT(date_type, format_type) | 返回日期字符串的显示格式 |
STR_TO_DATE(str, fmt) | 按照字符串fmt对str进行解析,解析为一个日期 |
上述 非GET_FORMAT 函数中fmt参数常用的格式符:
格式符 | 说明 | 格式符 | 说明 |
---|
%Y | 4位数字表示年份 | %y | 2位数字表示年份 |
%M | 月名表示月份 (January,…) | %m | 2位数字表示月份 (01, …) |
%b | 缩写的月份名 (Jan., Feb., …) | %c | 数字表示月份 (1, 2, …) |
%D | 英文后缀表示月中的天数 (1st, 2nd, …) | %d | 2位数字表示月中的天数 (01, 02, …) |
%e | 数字形式表示月中的天数 (1, 2, …) | | |
%H | 2位数字表示小时,24小时制 (01, …, 24) | %h或%l | 2位数字表示小时,12小时制 |
%k | 数字形式表示小时,24小时制 (1, 2, …) | %l | 数字形式表示小时,12小时制 (1, 2, …) |
%i | 2位数字表示分钟 (01, …) | %S或%s | 2位数字表示秒 (01, …, 60) |
%W | 一周中的星期名称 (Sunday, …) | %a | 一周中星期的缩写 (Sun,…, Mon.) |
%w | 数字形式表示周中的天数 (0=Sunday, 1=Monday, …) | | |
%j | 3位数字表示年中的天数 (001, …365) | %U | 数字形式表示年中的第几周 (1, 2, …) 其中Sunday为周中第一天 |
%u | 数字形式表示年中的第几周(1, 2, …) 其中Monday为周中第一天 | | |
%T | 24小时制 | %r | 12小时制 |
%p | AM或PM | %% | 表示 % |
GET_FORMAT 函数中的 date_type
和 format_type
参数取值如下:
日期类型 | 格式化类型 | 返回的格式化字符串 |
---|
DATE | USA | %m.%d.%Y |
DATE | JIS | %Y-%m-%d |
DATE | ISO | %Y-%m-%d |
DATE | EUR | %d.%m.%Y |
DATE | INTERNAL | %Y%m%d |
TIME | USA | %h:%i:%s %p |
TIME | JIS | %H:%i:%s |
TIME | ISO | %H:%i:%s |
TIME | EUR | %H.%i.%s |
TIME | INTERNAL | %H%i%s |
DATETIME | USA | %Y-%m-%d %H.%i.%s |
DATETIME | JIS | %Y-%m-%d %H:%i:%s |
DATETIME | ISO | %Y-%m-%d %H:%i:%s |
DATETIME | EUR | %Y-%m-%d %H.%i.%s |
DATETIME | INTERNAL | %Y%m%d%H%i%s |