时间相关函数

最近更新时间:2019-05-20 17:25:02

时间相关函数的函数名和功能描述如下:

函数名 功能描述
DATE string 将 “yy-MM-dd” 形式表示的字符串转为 SQL 日期。
TIME string 将 “hh:mm:ss” 形式表示的字符串转为 SQL 时间。
TIMESTAMP string 将 “yy-MM-dd hh:mm:ss.fff” 形式的字符串转为 SQL 时间戳。
INTERVAL string range 接受 “dd hh:mm:ss.fff” 形式的字符串(毫秒),或者 “yyyy-MM” 形式的字符串(月)。
对于毫秒,可以接受 DAY, MINUTE, DAY TO HOUR, DAY TO SECOND 作为 range; 对于月,接受 YEAR 或 YEAR TO MONTH 作为 range。 例如 INTERVAL ’10 00:00:00.004’ DAY TO SECOND、INTERVAL ‘10’ DAY、INTERVAL ‘2-10’ YEAR TO MONTH。
CURRENT_DATE 返回当前的 SQL 格式表示的日期(UTC)。
CURRENT_TIME 返回当前的 SQL 格式表示的时间(UTC)。
CURRENT_TIMESTAMP 返回当前 SQL 格式表示的时间戳(UTC)。
LOCALTIME 返回本地时区表示的 SQL 时间。
LOCALTIMESTAMP 返回本地时区表示的 SQL 时间戳。
EXTRACT(timeintervalunit FROM temporal) 获取时间点或时间段字符串中的某项,例如 EXTRACT(DAY FROM DATE ‘2006-06-05’) 返回 5,而 EXTRACT(YEAR FROM DATE ‘2018-06-12’) 则返回2018。
FLOOR(timepoint TO timeintervalunit) 将一个时间点向下取整,例如 FLOOR(TIME ’12:44:31’ TO MINUTE) 返回 12:44:00。
CEIL(timepoint TO timeintervalunit) 将一个时间点向上取整,例如 CEIL(TIME ’12:44:31’ TO MINUTE) 返回 12:45:00。
QUARTER(date) 返回指定 SQL 日期所在的季度,例如 QUARTER(DATE ‘1994-09-27’) 返回 3,表示第 3 季度。
(timepoint, temporal) OVERLAPS (timepoint, temporal) 判断两个时间段是否重叠。例如 (TIME
'2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME
'3:30:00', INTERVAL '2' HOUR) 返回 TRUE; 而 (TIME
'9:00:00', TIME '10:00:00') OVERLAPS (TIME
'10:15:00', INTERVAL '3' HOUR) 返回 FALSE。
TO_TIMESTAMP(string, simple_format) 以 Java 的 SimpleDateFormat 支持的时间格式化模板 simple_format 将 string 字符串格式化为流计算 Oceanus 支持的时间戳类型(timestamp 类型)。详见 类型转换函数
DATE_FORMAT_SIMPLE (timestamp, simple_format 将 timestamp 类型的字段以 Java 的 SimpleDateFormat 支持的时间格式化模板转为字符串形式。详见 类型转换函数
DATE_FORMAT(timestamp, format) 使用与 MySQL 兼容的格式字符串 format 来格式化时间戳为字符串(与DATE_FORMAT_SIMPLE 的区别在于采用 MySQL 的格式化语法而非 Java SimpleDateFormat 的格式化语法)。详见 类型转换函数
TIMESTAMPADD(unit, interval, timestamp) 对指定 timestamp 增加一个时间段(允许为负数),区间必须为 SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 中的一种。例如 TIMESTAMPADD(WEEK, 1, ‘2013-01-02’) 返回 ‘2013-01-09’。