时间函数
安全云脑SecMaster SQL语法支持的时间函数如下表所示:
函数 |
函数功能说明 |
---|---|
LOCALTIME |
返回本地时区的当前 SQL 时间,返回类型为 TIME(0)。在流模式下为每条记录进行取值。 但在批处理模式下,它在查询开始时计算一次,并对每一行使用相同的结果。 |
LOCALTIMESTAMP |
返回本地时区的当前 SQL 时间,返回类型为 TIMESTAMP(3)。在流模式下为每条记录进行取值。 但在批处理模式下,它在查询开始时计算一次,并对每一行使用相同的结果。 |
CURRENT_TIME |
返回本地时区的当前 SQL 时间,这是 LOCALTIME 的同义词。 |
CURRENT_DATE |
返回本地时区中的当前 SQL 日期。在流模式下为每条记录进行取值。 但在批处理模式下,它在查询开始时计算一次,并对每一行使用相同的结果。 |
CURRENT_TIMESTAMP |
返回本地时区的当前 SQL 时间戳,返回类型为 TIMESTAMP_LTZ(3)。在流模式下为每条记录进行取值。 但在批处理模式下,它在查询开始时计算一次,并对每一行使用相同的结果。 |
NOW() |
返回本地时区的当前 SQL 时间戳,这是 CURRENT_TIMESTAMP 的同义词。 |
YEAR(date) |
从 SQL 日期 date 返回年份。相当于 EXTRACT(YEAR FROM date)。例如 YEAR(DATE '1994-09-27') 返回 1994。 |
MONTH(date) |
从 SQL 日期 date 返回一年中的月份(1 到 12 之间的整数)。相当于 EXTRACT(MONTH FROM date)。 例如 MONTH(DATE '1994-09-27') 返回 9。 |
WEEK(date) |
从 SQL 日期 date 返回一年中的第几周(1 到 53 之间的整数)。相当于 EXTRACT(WEEK FROM date)。 例如 WEEK(DATE '1994-09-27') 返回 39。 |
DAYOFYEAR(date) |
从 SQL 日期 date 返回一年中的第几天(1 到 366 之间的整数)。相当于 EXTRACT(DOY FROM date)。 例如 DAYOFYEAR(DATE '1994-09-27') 返回 270。 |
DAYOFMONTH(date) |
从 SQL 日期 date 返回一个月中的第几天(1 到 31 之间的整数)。相当于 EXTRACT(DAY FROM date)。 例如 DAYOFMONTH(DATE '1994-09-27') 返回 27。 |
DAYOFWEEK(date) |
从 SQL 日期 date 返回一个星期中的第几天(1 到 7 之间的整数)。相当于 EXTRACT(DOW FROM date)。 例如 DAYOFWEEK(DATE '1994-09-27') 返回 3。 |
HOUR(timestamp) |
从 SQL 时间戳 timestamp 返回小时单位部分的小时(0 到 23 之间的整数)数。相当于 EXTRACT(HOUR FROM timestamp)。 例如 HOUR(TIMESTAMP '1994-09-27 13:14:15') 返回 13。 |
MINUTE(timestamp) |
从 SQL 时间戳 timestamp 返回分钟单位的分钟数(0 到 59 之间的整数)。相当于 EXTRACT(MINUTE FROM timestamp)。 例如 MINUTE(TIMESTAMP '1994-09-27 13:14:15') 返回 14。 |
DATE_FORMAT(timestamp, string) |
将时间戳 timestamp 转换为日期格式字符串 string 指定格式的字符串值。格式字符串与 Java 的 SimpleDateFormat 兼容。 |
TIMESTAMPADD(timeintervalunit, interval, timepoint) |
将时间interval和timepoint进行加减换算,加减的时间单位由timeintervalunit决定,例如TIMESTAMPADD(DAY,-3,NOW())用当前时间减三天,返回三天前的同一时间。 |