Sql 红移:如何创建datetime字段,自动将传入数据转换为“utc”

Sql 红移:如何创建datetime字段,自动将传入数据转换为“utc”,sql,amazon-web-services,amazon-redshift,utc,Sql,Amazon Web Services,Amazon Redshift,Utc,我想用红移创建一个表,以增量方式存储来自源的传入数据。mysql源中的日期字段未存储为UTC。是否可以在创建记录时将新记录转换并存储为UTC 我在想做这样的事情: CREATE TABLE test( my_dt_field datetime without timezone NOT NULL ...) 任何帮助都将不胜感激 红移提供了以下可用于存储日期的数据类型选项: 1.日期 使用日期数据类型存储没有时间戳的简单日历日期 2.时间戳 时间戳是不带时区的时间戳的别名 使用时间戳数据类型存

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

我在想做这样的事情:

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

任何帮助都将不胜感激

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

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

2.时间戳 时间戳是不带时区的时间戳的别名

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

时间戳列存储精度最高为6位的值(小数秒)

如果在时间戳列中插入日期,或在日期中插入部分时间戳值,则该值将隐式转换为完整时间戳值,默认值为00,表示缺少小时、分钟和秒。将忽略输入字符串中的时区值

默认情况下,时间戳值在用户表和Amazon红移系统表中都是协调的世界时UTC

3.2 TIMESTAMPTZ是带有时区的TIMESTAMP的别名

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

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

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


您也可以在此处参考AWS文档:

您的问题很难理解-您可以编辑它并提供更多信息吗?datetime字段当前如何存储在MySQL中?它有相关的时区吗?请注意,SQL客户端通常会将时间转换为计算机上的本地时间,因此很难确定格式。你能举一个数据的例子以及你如何解释它吗?嗨,约翰。。mysql表源中的字段实际上存储为'CEST'时间,我需要将整个表提取为红移。redshift本身有“UTC”作为当前时间戳,我想知道是否有可能创建目标表,当源的日期字段在“CEST”中流动时,它会自动转换为“UTC”。redshift实际上不会存储为UTC。相反,它使用时区存储日期,因此可以将其转换为任何格式。默认值为UTC,但SQL客户端可能会将其转换为其他格式。问题是。。。MySQL字段是否有时区,或者只是一个没有时区的日期时间?要将其转换为红移,您需要知道这一点。从MySQL导出时字段是什么样子?@JohnRotenstein的手册不同意:当输入值包含时区时,Amazon Redshift使用时区将值转换为协调世界时UTC,并存储UTC值。当您将其加载到红移时,您可以将其加载为带时区的时间戳,也可以加载为不带时区的普通时间戳。然后,如果您需要的话,您可以进行操作,将其转换为带有时区的时间戳。