日期和时间函数 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

日期和时间函数

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

日期和时间函数摘要

函数 语法 返回值
+(串联)运算符

将日期连接到 + 符号任一侧的时间,并返回 TIMESTAMP 或 TIMESTAMPTZ。

date + time TIMESTAMP 或者 TIMESTAMPZ
ADD_MONTHS

将指定的月数添加到日期或时间戳。

ADD_MONTHS ({date|timestamp}, integer) TIMESTAMP
AT TIME ZONE

指定要与 TIMESTAMP 或 TIMESTAMPTZ 表达式一起使用的时区。

AT TIME ZONE 'timezone' TIMESTAMP 或者 TIMESTAMPZ
CONVERT_TIMEZONE

将一个时区的时间戳转换为另一个时区的时间戳。

CONVERT_TIMEZONE (['timezone',] 'timezone', timestamp) TIMESTAMP
CURRENT_DATE

返回当前事务开始时的当前会话时区(预设情况下为 UTC)中的日期。

CURRENT_DATE DATE
DATE_CMP

比较两个日期并在日期相同时返回 0date1 较大时返回 1,以及 date2 较大时返回 -1

DATE_CMP (date1, date2) INTEGER
DATE_CMP_TIMESTAMP

将日期与时间进行比较,并在值相同时返回 0日期较大时返回 1,以及时间戳较大时返回 -1

DATE_CMP_TIMESTAMP (date, timestamp) INTEGER
DATE_CMP_TIMESTAMPTZ

将日期与带有时区的时间戳进行比较,并在值相同时返回 0日期较大时返回 1,以及 timestamptz 较大时返回 -1

DATE_CMP_TIMESTAMPTZ (date, timestamptz) INTEGER
DATE_PART_YEAR

从日期中提取年份。

DATE_PART_YEAR (date) INTEGER
DATEADD

按指定的时间间隔递增日期或时间。

DATEADD (datepart, interval, {date|time|timetz|timestamp}) TIMESTAMPTIMETIMETZ
DATEDIFF

返回给定日期部分(如一天或月)的两个日期或时间之间的差值。

DATEDIFF (datepart, {date|time|timetz|timestamp}, {date|time|timetz|timestamp}) BIGINT
DATE_PART

从日期或时间中提取日期部分值。

DATE_PART (datepart, {date|timestamp}) DOUBLE
DATE_TRUNC

基于日期部分截断时间戳。

DATE_TRUNC ('datepart', timestamp) TIMESTAMP
EXTRACT

从时间戳、时间、timetz 或文本中提取日期部分。

EXTRACT (datepart FROM {TIMESTAMP 'literal' | timestamp | time | timetz}) INTEGER or DOUBLE
GETDATE

返回当前会话时区(预设情况下为 UTC)中的当前日期和时间。括号为必填项。

GETDATE() TIMESTAMP
INTERVAL_CMP

比较两个时间间隔并在时间间隔相等时返回 0interval1 较大时返回 1,以及 interval2 较大时返回 -1

INTERVAL_CMP (interval1, interval2) INTEGER
LAST_DAY

返回该月最后一天的日期,该日期包含 date

LAST_DAY(date) DATE
MONTHS_BETWEEN

返回两个日期之间相隔的月数。

MONTHS_BETWEEN (date, date) FLOAT8
NEXT_DAY

返回比 date 晚的日期的第一个实例的日期。

NEXT_DAY (date, day) DATE
SYSDATE

返回当前事务开始的日期和时间(以 UTC)。

SYSDATE TIMESTAMP
TIMEOFDAY

以字符串值形式返回当前会话时区(预设情况下为 UTC)中的当前工作日、日期和时间。

TIMEOFDAY() VARCHAR
TIMESTAMP_CMP

比较两个时间戳并在时间戳相等时返回 0interval1 较大时返回 1,以及 interval2 较大时返回 -1

TIMESTAMP_CMP (timestamp1, timestamp2) INTEGER
TIMESTAMP_CMP_DATE

将时间戳与日期进行比较,并在值相同时返回 0时间戳较大时返回 1,以及日期较大时返回 -1

TIMESTAMP_CMP_DATE (timestamp, date) INTEGER
TIMESTAMP_CMP_TIMESTAMPTZ

将时间戳与带有时区的时间戳进行比较,并在值相同时返回 0时间戳较大时返回 1,以及 timestamptz 较大时返回 -1

TIMESTAMP_CMP_TIMESTAMPTZ (timestamp, timestamptz) INTEGER
TIMESTAMPTZ_CMP

将两个带有时区的时间戳值进行比较,并在值相同时返回 0timestamptz1 较大时返回 1,以及 timestamptz2 较大时返回 -1

TIMESTAMPTZ_CMP (timestamptz1, timestamptz2) INTEGER
TIMESTAMPTZ_CMP_DATE

将带有时区的时间戳值与日期进行比较,并在值相同时返回 0timestamptz 较大时返回 1,以及日期较大时返回 -1

TIMESTAMPTZ_CMP_DATE (timestamptz, date) INTEGER
TIMESTAMPTZ_CMP_TIMESTAMP

将带有时区的时间戳与时间戳进行比较,并在值相同时返回 0timestamptz 较大时返回 1,以及时间戳较大时返回 -1

TIMESTAMPTZ_CMP_TIMESTAMP (timestamptz, timestamp) INTEGER
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

弃用的仅领导节点函数

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