Redshift:如何创建自动将传入数据转换为 'utc' 的日期时间字段
Redshift: how to create datetime field that automatically converts incoming data to 'utc'
我想在 redshift 中创建一个 table 来存储来自源的增量传入数据。 mysql 源中的日期字段未存储为 UTC
。是否可以在记录创建时将新记录转换并存储为 UTC
。
我正在考虑做类似的事情:
CREATE TABLE test(
my_dt_field datetime without timezone NOT NULL ...)
非常感谢任何帮助!
Redshift 提供以下可用于存储日期的数据类型选项:
1.DATE
使用 DATE 数据类型存储没有时间戳的简单日历日期。
2.TIMESTAMP
TIMESTAMP 是 TIMESTAMP WITHOUT TIME ZONE 的别名。
使用 TIMESTAMP 数据类型存储完整的时间戳值,包括日期和一天中的时间。
TIMESTAMP 列存储最多 6 位小数秒精度的值。
如果您将日期插入 TIMESTAMP 列,或插入具有部分时间戳值的日期,该值将隐式转换为完整时间戳值,并使用默认值 (00) 表示缺少的小时、分钟和秒.输入字符串中的时区值将被忽略。
默认情况下,TIMESTAMP 值在用户表和 Amazon Redshift 系统表中都是协调世界时 (UTC)。
3.TIMESTAMPTZ
TIMESTAMPTZ 是 TIMESTAMP WITH TIME ZONE 的别名。
使用 TIMESTAMPTZ 数据类型输入完整的时间戳值,包括日期、时间和时区。当输入值包含时区时,Amazon Redshift 使用时区将值转换为协调世界时 (UTC) 并存储 UTC 值。
要查看支持的时区名称列表,请执行以下命令。
select pg_timezone_names();
要回答您的问题,请声明您的列数据类型为 TIMESTAMP,默认情况下它以 UTC 格式存储
您也可以在这里参考 AWS 文档:https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html
我想在 redshift 中创建一个 table 来存储来自源的增量传入数据。 mysql 源中的日期字段未存储为 UTC
。是否可以在记录创建时将新记录转换并存储为 UTC
。
我正在考虑做类似的事情:
CREATE TABLE test(
my_dt_field datetime without timezone NOT NULL ...)
非常感谢任何帮助!
Redshift 提供以下可用于存储日期的数据类型选项:
1.DATE 使用 DATE 数据类型存储没有时间戳的简单日历日期。
2.TIMESTAMP TIMESTAMP 是 TIMESTAMP WITHOUT TIME ZONE 的别名。
使用 TIMESTAMP 数据类型存储完整的时间戳值,包括日期和一天中的时间。
TIMESTAMP 列存储最多 6 位小数秒精度的值。
如果您将日期插入 TIMESTAMP 列,或插入具有部分时间戳值的日期,该值将隐式转换为完整时间戳值,并使用默认值 (00) 表示缺少的小时、分钟和秒.输入字符串中的时区值将被忽略。
默认情况下,TIMESTAMP 值在用户表和 Amazon Redshift 系统表中都是协调世界时 (UTC)。
3.TIMESTAMPTZ TIMESTAMPTZ 是 TIMESTAMP WITH TIME ZONE 的别名。
使用 TIMESTAMPTZ 数据类型输入完整的时间戳值,包括日期、时间和时区。当输入值包含时区时,Amazon Redshift 使用时区将值转换为协调世界时 (UTC) 并存储 UTC 值。
要查看支持的时区名称列表,请执行以下命令。 select pg_timezone_names();
要回答您的问题,请声明您的列数据类型为 TIMESTAMP,默认情况下它以 UTC 格式存储
您也可以在这里参考 AWS 文档:https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html