Redshift to_timestamp时区偏移

问题描述

我很难将此时间戳字符串2020-09-08T15:30:00+00:00转换为正确的UTC时间:

如果我这样做:

select to_timestamp('2020-09-08T15:30:00+00:00','YYYY-MM-DD"T"HH24:MI:SS');

我收到2020-09-08 15:30:00.000000 -04:00,它在错误的时区。

如何解析字符串的+00:00部分?我基于AWS document尝试了TZ/OF,但不允许添加它们:

[0A000][500310] [Amazon](500310) Invalid operation: "TZ"/"tz" not supported;

,而我正在这样做:select to_timestamp('2020-09-08T15:30:00+00:00','YYYY-MM-DD"T"HH24:MI:SS+TZ');

解决方法

不确定为什么要尝试使用to_timestamp进行转换,因为在您的示例中,该转换仅已经UTC/GMT

我过去使用过这种方式,希望它也对您有用。

#below is something saved in IST(+5:30) to GMT
SELECT CONVERT_TIMEZONE('GMT','2020-09-08 15:30:00+05:30');

类似地,可以将其转换为美国/纽约时区。

SELECT CONVERT_TIMEZONE('America/New_York','2020-09-08 15:30:00+05:30') ;