Redshift:如何创建日期时间字段,该字段将输入的数据自动转换为“ utc”

时间:2018-06-22 09:21:33

标签: sql amazon-web-services amazon-redshift utc

我想在redshift中创建一个表,该表存储来自源的增量传入数据。 mysql源中的日期字段未存储为UTC。创建记录时是否可以将新记录转换为UTC并将其存储。

我正在考虑做这样的事情:

CREATE TABLE test(
  my_dt_field datetime without timezone NOT NULL ...)

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

Redshift提供了以下可用于存储日期的数据类型选项:

1.DATE 使用DATE数据类型存储不带时间戳的简单日历日期。

2.TIMESTAMP TIMESTAMP是TIMESTAMP WITHTIME TIME ZONE的别名。

使用TIMESTAMP数据类型存储完整的时间戳记值,包括日期和一天中的时间。

TIMESTAMP列存储的精度最高为小数秒内最多6位数字。

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

默认情况下,用户表和Amazon Redshift系统表中的TIMESTAMP值均为协调世界时(UTC)。

3.TIMESTAMPTZ TIMESTAMPTZ是TIMESTAMP WITH TIME ZONE的别名。

使用TIMESTAMPTZ数据类型输入完整的时间戳记值,其中包括日期,一天中的时间和时区。当输入值包含时区时,Amazon Redshift使用时区将值转换为协调世界时(UTC)并存储UTC值。

要查看受支持的时区名称列表,请执行以下命令。 选择pg_timezone_names();

要回答您的问题,请将列数据类型声明为TIMESTAMP,默认情况下它存储在UTC中

您还可以在此处参考AWS文档:https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html