Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

日期和时间函数

在本部分中,您可以找到 Amazon Redshift 支持的日期和时间标量函数的相关信息。

日期和时间函数概要

函数 语法 返回值 说明
ADD_MONTHS ADD_MONTHS ({date|timestamp}, integer) TIMESTAMP 将指定数目的月添加到日期或时间戳。
AT TIME ZONE AT TIME ZONE 'timezone' TIMESTAMP 指定使用哪个时区与 TIMESTAMP 或 TIMESTAMPTZ 表达式配合使用。
CONVERT_TIMEZONE CONVERT_TIMEZONE (['timezone',] 'timezone', timestamp) TIMESTAMP 将时间戳从一个时区转换为另一个时区。
CURRENT_DATE CURRENT_DATE DATE 返回当前事务开始时间在当前会话时区 (默认为 UTC) 中对应的日期。
DATE_CMP DATE_CMP (date1, date2) INTEGER 比较两个日期,如果日期相同,返回 0;如果 date1 较大,返回 1;如果 date2 较大,返回 -1
DATE_CMP_TIMESTAMP DATE_CMP_TIMESTAMP (date, timestamp) INTEGER 比较日期与时间,如果两值相同,返回 0;如果 date 较大,返回 1;如果 timestamp 较大,返回 -1
DATE_CMP_TIMESTAMPTZ DATE_CMP_TIMESTAMPTZ (date, timestamptz) INTEGER 比较日期与有时区的时间戳,如果两值相同,则返回 0;如果日期 较大,返回 1;如果timestamptz 较大,返回 -1
DATE_PART_YEAR DATE_PART_YEAR (date) INTEGER 从日期中提取年份。
DATEADD DATEADD (datepart, interval, {date|timestamp}) TIMESTAMP 将日期或时间增大指定的间隔。
DATEDIFF DATEDIFF (datepart, {date|time}, {date|timestamp}) BIGINT 返回两个日期或时间的差值(以给定的日期部分表示,如日或月)。
DATE_PART DATE_PART (datepart, {date|time}) DOUBLE 从日期或时间中提取日期部分的值。
DATE_TRUNC DATE_TRUNC ('datepart', timestamp) TIMESTAMP 根据日期部分截断时间戳。
EXTRACT EXTRACT (datepart FROM {TIMESTAMP 'literal' | timestamp}) DOUBLE 从时间戳或字面值中提取日期部分。
GETDATE GETDATE() TIMESTAMP 返回当前会话时区 (默认为 UTC) 中的当前日期和时间。需要圆括号。
INTERVAL_CMP INTERVAL_CMP (interval1, interval2) INTEGER 比较两个时间间隔,如果时间间隔相同,返回 0;如果 interval1 较大,返回 1;如果 interval2 较大,返回 -1
LAST_DAY LAST_DAY(date) DATE 返回包含 date 的月的最后一天的日期。
MONTHS_BETWEEN MONTHS_BETWEEN (date, date) FLOAT8 返回两个日期之间相隔的月数。
NEXT_DAY NEXT_DAY (date, day) DATE 返回晚于 dateday 的第一个实例的日期。
SYSDATE SYSDATE TIMESTAMP 返回当前事务开始时间在当前会话时区 (默认为 UTC) 中对应的日期和时间。
TIMEOFDAY TIMEOFDAY() VARCHAR 以字符串值的形式返回当前会话时区 (默认为 UTC) 中的当前工作日、日期和时间。
TIMESTAMP_CMP TIMESTAMP_CMP (timestamp1, timestamp2) INTEGER 比较两个时间戳,如果时间戳相同,返回 0;如果 timestamp1 较大,返回 1;如果 timestamp2 较大,返回 -1
TIMESTAMP_CMP_DATE TIMESTAMP_CMP_DATE (timestamp, date) INTEGER 比较时间戳与日期,如果两值相同,返回 0;如果 timestamp 较大,返回 1;如果 date 较大,返回 -1
TIMESTAMP_CMP_TIMESTAMPTZ TIMESTAMP_CMP_TIMESTAMPTZ (timestamp, timestamptz) INTEGER 比较时间戳与有时区的时间戳,如果值相等,返回 0;如果 timestamp 较大,返回 1;如果 timestamptz 较大,返回 -1
TIMESTAMPTZ_CMP TIMESTAMPTZ_CMP (timestamptz1, timestamptz2) INTEGER 比较两个有时区的时间戳值,如果值相等,返回 0;如果 timestamptz1 较大,返回 1;如果 timestamptz2 较大,返回 -1
TIMESTAMPTZ_CMP_DATE TIMESTAMPTZ_CMP_DATE (timestamptz, date) INTEGER 比较有时区的时间戳值与日期,如果两值相同,则返回 0;如果 timestamptz 较大,返回 1;如果日期 较大,返回 -1
TIMESTAMPTZ_CMP_TIMESTAMP TIMESTAMPTZ_CMP_TIMESTAMP (timestamptz, timestamp) INTEGER 比较有时区的时间戳与时间戳,如果值相等,返回 0;如果 timestamptz 较大,返回 1;如果 timestamp 较大,返回 -1
TIMEZONE TIMEZONE ('timezone', { timestamp | timestamptz ) TIMESTAMP 或 TIMESTAMPTZ 返回指定时区和时间戳值的时间戳或有时区时间戳。
TO_TIMESTAMP TO_TIMESTAMP ('timestamp', 'format') TIMESTAMPTZ 返回指定时间戳和时区格式的有时区时间戳。
TRUNC TRUNC(timestamp) DATE 截断时间戳并返回日期。

注意

在运行时间计算中不考虑闰秒。

事务中的日期和时间函数

在事务块 (BEGIN … END) 中执行以下函数时,函数返回当前事务而不是当前语句的开始日期或时间。

  • SYSDATE

  • TIMESTAMP

  • CURRENT_DATE

以下函数始终返回当前语句的开始日期或时间,即使在事务块中也是如此。

  • GETDATE

  • TIMEOFDAY

已弃用的仅领导节点函数

以下日期函数因为仅在领导节点上执行而遭到弃用。有关更多信息,请参阅 仅领导节点函数