我想在redshift中创建一个表,该表存储来自源的增量传入数据。 mysql源中的日期字段未存储为UTC
。创建记录时是否可以将新记录转换为UTC
并将其存储。
我正在考虑做这样的事情:
CREATE TABLE test(
my_dt_field datetime without timezone NOT NULL ...)
任何帮助将不胜感激!
答案 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