日期时间类型
日期时间数据类型包括 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。