日期时间类型 - Amazon Redshift

日期时间类型

日期时间数据类型包括 DATE、TIME、TIMETZ、TIMESTAMP 和 TIMESTAMPTZ。

存储和范围

名称 存储 范围 解析
DATE 4 字节 4713 BC 到 294276 AD 1 天
TIME 8 字节 00:00:00 至 24:00:00 1 微秒
TIMETZ 8 字节 00:00:00+1459 至 00:00:00+1459 1 微秒
TIMESTAMP 8 字节 4713 BC 到 294276 AD 1 微秒
TIMESTAMPTZ 8 字节 4713 BC 到 294276 AD 1 微秒

DATE

使用 DATE 数据类型存储没有时间戳的简单日历日期。

TIME

TIME 是 TIME WITHOUT TIME ZONE 的别名。

使用 TIME 数据类型存储一天中的时间。

TIME 列存储小数秒的精度最高达到 6 位的值。

预设情况下,用户表和 Amazon Redshift 系统表中,TIME 值均为协调世界时 (UTC)。

TIMETZ

TIMETZ 是 TIME WITH TIME ZONE 的别名。

使用 TIMETZ 数据类型来存储带有时区的一天中的时间。

TIMETZ 列存储小数秒的精度最高达到 6 位的值。

预设情况下,用户表和 Amazon Redshift 系统表中的 TIME 值为 (UTC)。

TIMESTAMP

TIMESTAMP 是 TIMESTAMP WITHOUT TIME ZONE 的别名。

使用 TIMESTAMP 数据类型存储包含日期和当日时间的完整时间戳值。

TIMESTAMP 列存储小数秒的精度最高达到 6 位的值。

如果将日期插入到 TIMESTAMP 列中,或插入具有部分时间戳值的日期,则值将隐式转换为完整时间戳值。此完整时间戳值具有缺少的小时、分钟和秒的默认值 (00)。输入字符串中的时区值被忽略。

预设情况下,用户表和 Amazon Redshift 系统表中的 TIMESTAMP 值为 (UTC)。

TIMESTAMPTZ

TIMESTAMPTZ 是 TIMESTAMP WITH TIME ZONE 的别名。

使用 TIMESTAMPTZ 数据类型输入包含日期、当日时间和时区的完整时间戳值。当输入值包含一个时区时,Amazon Redshift 使用时区将值转化为协 UTC 并存储 UTC 值。

要查看支持的时区名称的列表,请执行以下命令。

select pg_timezone_names();

要查看支持的时区缩写的列表,请执行以下命令。

select pg_timezone_abbrevs();

您还可以在 IANA 时区数据库中找到有关时区的当前信息。

下表提供了时区格式的示例。

格式 示例

dd mon hh:mi:ss yyyy tz

17 Dec 07:37:16 1997 PST

mm/dd/yyyy hh:mi:ss.ss tz

12/17/1997 07:37:16.00 PST

mm/dd/yyyy hh:mi:ss.ss tz

12/17/1997 07:37:16.00 US/Pacific

yyyy-mm-dd hh:mi:ss+/-tz

1997-12-17 07:37:16-08

dd.mm.yyyy hh:mi:ss tz

17.12.1997 07:37:16.00 PST

TIMESTAMPTZ 列存储小数秒的精度最高达到 6 位的值。

如果将日期插入到 TIMESTAMPTZ 列中,或插入具有部分时间戳的日期,则值将隐式转换为完整时间戳值。此完整时间戳值具有缺少的小时、分钟和秒的默认值 (00)。

TIMESTAMPTZ 值为用户表中的 UTC。