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 Redshift 错误
从 AWS Glue 表到 RedShift Spectrum 外部表的日期字段转换