AWS Redshift SQL 中日期时间的异常日期格式(字符串)

Posted

技术标签:

【中文标题】AWS Redshift SQL 中日期时间的异常日期格式(字符串)【英文标题】:Unusual date format (string) to datetime in AWS Redshift SQL 【发布时间】:2019-09-17 19:05:51 【问题描述】:

我目前正在从我用 Java 构建的这个 API 中提取数据 (.CSV)。

我的 CSV 表中的一列 - “created_at” - 采用如下字符串格式:

无论如何我可以在 Redshift SQL 中将其转换为以下格式的日期时间:

感谢任何帮助。

【问题讨论】:

你关心时区吗? 我愿意,但会在对上述问题进行排序后立即进行调查。然后,我将使用表中的不同列将交易(这是支付交易表)关联/转换到其原始时区 - 如果这有意义吗? 【参考方案1】:

看看这是否有帮助(更新)

select cast('Thu Sep 12 17:58:46 BST 2019' as timestamp);

或者简单地说,

select 'Thu Sep 12 17:58:46 BST 2019':: timestamp

【讨论】:

这适用于 SQL 但不适用于 Redshift SQL....在 Redshift SQL 上运行上述内容时,我得到以下信息:"ERROR: [Amazon](500310) Invalid operation: syntax error在“,”或附近位置:142;错误代码:500310“【参考方案2】:

如果你可以不用时区,你可以试试:

select to_timestamp(left(str, 20) || right(str, 4), 'Dy Mon DD HH24:MI:SS YYYY')
from (select 'Thu Sep 12 17:58:46 BST 2019' as str) v;

【讨论】:

运行上述程序时出现以下错误:“ERROR: [Amazon](500310) Invalid operation: syntax error at or near ")” 位置:127;错误代码:500310 " @Andre。 . . Redshift 不支持values()。我使用 Postgres 进行了测试。

以上是关于AWS Redshift SQL 中日期时间的异常日期格式(字符串)的主要内容,如果未能解决你的问题,请参考以下文章

AWS Glue ETL 到 Redshift:日期

计算两个日期之间的差异时出现 AWS Redshift 错误

AWS Redshift 默认时间戳

从 AWS Glue 表到 RedShift Spectrum 外部表的日期字段转换

如何使用 AWS Redshift Data API 使用 Java 执行 SQL? [关闭]

在 AWS Redshift、sql 工作台中手动将数据插入表中