时间函数
函数 | 功能描述 |
---|---|
DATE string |
将 "yyyy-MM-dd" 形式表示的字符串 string 解析为 SQL 日期。 |
TIME string |
将 "HH:mm:ss" 形式表示的字符串 string 解析为 SQL 时间。 |
TIMESTAMP string |
将 "yyyy-MM-dd HH:mm:ss[.SSS]" 形式表示的字符串 string 解析为 SQL 时间戳。 |
INTERVAL string range |
返回时间间隔。string 有两种类型:
例如:
|
CURRENT_DATE |
返回 UTC 时区当前的 SQL 日期。 |
CURRENT_TIME |
返回 UTC 时区当前的 SQL 时间。 |
CURRENT_TIMESTAMP |
返回 UTC 时区当前的 SQL 时间戳。 |
LOCALTIME |
返回本地时区当前的 SQL 时间。 |
LOCALTIMESTAMP |
返回本地时区当前的 SQL 时间戳。 |
EXTRACT(timeintervalunit FROM temporal) |
获取时间点的一部分。 例如:
|
YEAR(date) |
返回指定日期的年份,相当于 EXTRACT(YEAR FROM date)。 |
QUARTER(date) |
返回指定日期的季度(取值范围:1~4 之间的整数)。相当于 EXTRACT(QUARTER FROM date)。 |
MONTH(date) |
返回指定日期的月份(取值范围:1~12 之间的整数)。相当于 EXTRACT(MONTH FROM date)。 |
WEEK(date) |
返回指定日期的周数,即当年的第几周(取值范围:1~53 之间的整数)。相当于 EXTRACT(WEEK FROM date)。 |
DAYOFYEAR(date) |
返回指定日期在当年的天数,即当年的第几天(取值范围:1~366 之间的整数)。相当于 EXTRACT(DOY FROM date)。 |
DAYOFMONTH(date) |
返回指定日期在当月的天数,即当月的第几天(取值范围:1~31 之间的整数)。相当于 EXTRACT(DAY FROM date)。 |
DAYOFWEEK(date) |
返回指定日期在本周的天数,即本周的第几天(取值范围:1~7 之间的整数)。相当于 EXTRACT(DOW FROM date)。 |
HOUR(timestamp) |
返回指定时间戳的小时部分(取值范围:0~23 之间的整数)。相当于 EXTRACT(HOUR FROM timestamp)。 |
MINUTE(timestamp) |
返回指定时间戳的分钟部分(取值范围:0~59 之间的整数)。相当于 EXTRACT(MINUTE FROM timestamp)。 |
SECOND(timestamp) |
返回指定时间戳的秒部分(取值范围:0~59 之间的整数)。相当于 EXTRACT(SECOND FROM timestamp)。 |
FLOOR(timepoint TO timeintervalunit) |
将一个时间点按 timeintervalunit 单位向下取整。 |
CEIL(timepoint TO timeintervalunit) |
将一个时间点按 timeintervalunit 单位向上取整。 |
(Timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) |
判断两个时间段是否重叠。时间值可以是时间点或时间间隔。 例如:
|
TIMESTAMPADD(timeintervalunit, interval, timepoint) |
对指定时间点 timestamp 增加一个时间段 interval(interval 可以为负数)。时间段单位 timeintervalunit 可以为 SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR。 例如:
|
TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) |
计算指定单位区间下,timepoint1 和 timepoint2 之间的时间差(允许为负数)。 |
CONVERT_TZ(string1, string2, string3) |
将时间 string1(格式为 'yyyy-MM-dd HH:mm:ss' )从时区 string2 转换到时区 string3。时区支持缩写(例如 "PST")、全称(例如 "Asia/Shanghai")或者任意时区(例如 "GMT-8:00")。 |
FROM_UNIXTIME(numeric[, string]) |
返回 numeric 代表的 Unix 时间戳(从 1970-01-01 00:00:00 UTC 到现今的秒数)转为 'YYYY-MM-DD hh:mm:ss' 格式的字符串。默认使用 UTC+8 时区,即北京时间(Asia/Shanghai)。 |
UNIX_TIMESTAMP() |
返回以秒为单位的 Unix 时间戳(从 1970-01-01 00:00:00 UTC 到现今的秒数),类型为 BIGINT。默认使用 UTC+8 时区,即北京时间(Asia/Shanghai)。 |
UNIX_TIMESTAMP(string1[, string2]) |
将时间 string1 以时区 string2 的格式(可选,默认是 'yyyy-MM-dd HH:mm:ss')转为 Unix 时间戳,类型为 BIGINT。 |
TO_DATE(string1[, string2]) |
将日期字符串 string1 以 string2 的格式(可选,默认是 'yyyy-MM-dd')转为 DATE 格式的日期。 |
TO_TIMESTAMP(string1[, string2]) |
将时间字符串 string1 以 string2 的格式(可选,默认是 'yyyy-MM-dd HH:mm:ss')转为 TIMESTAMP 格式的时间。默认使用 UTC+8 时区,即北京时间(Asia/Shanghai)。 |
NOW() |
返回 UTC 时区当前的 SQL TIMESTAMP 时间戳。 |