日期和时间函数
在本部分中,您可以找到 Amazon Redshift 支持的日期和时间标量函数的相关信息。
主题
- 日期和时间函数摘要
- 事务中的日期和时间函数
- 弃用的仅领导节点函数
- +(串联)运算符
- ADD_MONTHS 函数
- AT TIME ZONE 函数
- CONVERT_TIMEZONE 函数
- CURRENT_DATE 函数
- DATE_CMP 函数
- DATE_CMP_TIMESTAMP 函数
- DATE_CMP_TIMESTAMPTZ 函数
- DATEADD 函数
- DATEDIFF 函数
- DATE_PART 函数
- DATE_PART_YEAR 函数
- DATE_TRUNC 函数
- EXTRACT 函数
- GETDATE 函数
- INTERVAL_CMP 函数
- LAST_DAY 函数
- MONTHS_BETWEEN 函数
- NEXT_DAY 函数
- SYSDATE 函数
- TIMEOFDAY 函数
- TIMESTAMP_CMP 函数
- TIMESTAMP_CMP_DATE 函数
- TIMESTAMP_CMP_TIMESTAMPTZ 函数
- TIMESTAMPTZ_CMP 函数
- TIMESTAMPTZ_CMP_DATE 函数
- TIMESTAMPTZ_CMP_TIMESTAMP 函数
- TIMEZONE 函数
- TO_TIMESTAMP 函数
- TRUNC 函数
- 日期或时间戳函数的日期部分
日期和时间函数摘要
函数 | 语法 | 返回值 |
---|---|---|
+(串联)运算符
将日期连接到 + 符号任一侧的时间,并返回 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 比较两个日期并在日期相同时返回 |
DATE_CMP (date1, date2) | INTEGER |
DATE_CMP_TIMESTAMP 将日期与时间进行比较,并在值相同时返回 |
DATE_CMP_TIMESTAMP (date, timestamp) | INTEGER |
DATE_CMP_TIMESTAMPTZ 将日期与带有时区的时间戳进行比较,并在值相同时返回 |
DATE_CMP_TIMESTAMPTZ (date, timestamptz) | INTEGER |
DATE_PART_YEAR 从日期中提取年份。 |
DATE_PART_YEAR (date) | INTEGER |
DATEADD 按指定的时间间隔递增日期或时间。 |
DATEADD (datepart, interval, {date|time|timetz|timestamp}) | TIMESTAMP 、TIME 或 TIMETZ |
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 从 timestamp、timestamptz、time 或 timetz 中提取日期或时间部分。 |
EXTRACT (datepart FROM source) | INTEGER or DOUBLE |
GETDATE 返回当前会话时区(预设情况下为 UTC)中的当前日期和时间。括号为必填项。 |
GETDATE() | TIMESTAMP |
INTERVAL_CMP 比较两个时间间隔并在时间间隔相等时返回 |
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 将两个时间戳值进行比较,并在值相同时返回 |
TIMESTAMP_CMP (timestamp1, timestamp2) | INTEGER |
TIMESTAMP_CMP_DATE 将时间戳与日期进行比较,并在值相同时返回 |
TIMESTAMP_CMP_DATE (timestamp, date) | INTEGER |
TIMESTAMP_CMP_TIMESTAMPTZ 将时间戳与带有时区的时间戳进行比较,并在值相同时返回 |
TIMESTAMP_CMP_TIMESTAMPTZ (timestamp, timestamptz) | INTEGER |
TIMESTAMPTZ_CMP 将两个带有时区的时间戳值进行比较,并在值相同时返回 |
TIMESTAMPTZ_CMP (timestamptz1, timestamptz2) | INTEGER |
TIMESTAMPTZ_CMP_DATE 将带有时区的时间戳值与日期进行比较,并在值相同时返回 |
TIMESTAMPTZ_CMP_DATE (timestamptz, date) | INTEGER |
TIMESTAMPTZ_CMP_TIMESTAMP 将带有时区的时间戳与时间戳进行比较,并在值相同时返回 |
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
弃用的仅领导节点函数
以下日期函数因为仅在领导节点上运行而遭到弃用。有关更多信息,请参阅 仅领导节点函数。
-
AGE。请改用 DATEDIFF 函数。
-
CURRENT_TIME。改用 GETDATE 函数 或 SYSDATE。
-
CURRENT_TIMESTAMP。改用 GETDATE 函数 或 SYSDATE。
-
LOCALTIME。改用 GETDATE 函数 或 SYSDATE。
-
LOCALTIMESTAMP。改用 GETDATE 函数 或 SYSDATE。
-
ISFINITE
-
NOW。改用 GETDATE 函数 或 SYSDATE。