Aginity Workbench for Redshift - to_timestamp 转换问题

Posted

技术标签:

【中文标题】Aginity Workbench for Redshift - to_timestamp 转换问题【英文标题】:Aginity Workbench for Redshift - to_timestamp conversion issue 【发布时间】:2017-10-23 15:37:09 【问题描述】:

在 Aginity Workbench for AWS Redshift 上使用函数 to_timestamp() 时遇到问题。出于某种我不明白的原因,我尝试创建的时间戳增加了 2 小时。

我一直在寻找解决方案,但找不到类似的东西,有人可以帮我解决这个问题吗?


以下代码:

select
'2017-10-17 10:30:00' test,
to_timestamp('2017-10-17 10:30:00','YYYY-MM-DD HH24:MI:SS') test_converted

检索:

测试 = 2017-10-17 10:30:00

test_converted = 2017-10-17 12:30:00

【问题讨论】:

看起来像一个时区的东西。你是UTC+2吗? '2017-10-17 10:30:00'::timestamp 和 '2017-10-17 10:30:00'::timestamptz 和 '2017-10-17 10:30:00' 你会得到什么: :timestamptz 在时区 'UTC' 同意,'2017-10-17 10:30:00'::timestamptz 给出 '2017-10-17 12:30:00' 和 '2017-10-17 10:30:00 '::timestamptz 在时区'UTC' 给我'2017-10-17 10:30:00'。 “::”在做什么?如果 XX::timestamp 等于 to_timestamp(XX,'YYYY-MM-DD HH24:MI:SS') 那么它解决了我的问题。 请在下方查看我的回答,如果您需要,请“接受” 【参考方案1】:

您可以使用 :: 在 postgres 和 redshift 中转换类型,因此您的代码将是

select '2017-10-17 10:30:00'::timestamp;

这将解决您的问题。

(我认为您之前的代码正在转换为本地时区)

【讨论】:

以上是关于Aginity Workbench for Redshift - to_timestamp 转换问题的主要内容,如果未能解决你的问题,请参考以下文章

Aginity Workbench Redshift 服务器连接错误

在 Aginity Workbench SQL 中选择 1% 的样本

Redshift Aginity Workbench - 错误:42703:table_y 中不存在列“XXX”

有没有办法让 Aginity Workbench 编写 Unix 文件而不是 Windows 文件(仅 LF 而不是 CR\LF)

保存 Aginity for Netezza 后如何摆脱“外部修改文件”模式

Aginity for Netezza 使用 ODBC 从外部 xlsx 文件创建临时表