将传入时区 {IST/PST/GMT 等..} TS 转换为 Teradata 中的 CST 时区 TS?

Convert incoming timezone {IST/PST/GMT etc..} TS to CST timezone TS in teradata?

我有一个要求,我必须将时间戳 {with any timezone} 列转换为 CST 时区时间戳。

传入的时区将在另一栏中提及,请参阅下面的table:

我要计算'????'?

P.S。我的 teradata 默认时区设置是 CST。

我已经试过了:

select 时间戳 AT 'America Central'

但它给了我相同的输出,因为我的默认 teradata 时区是 CST。

我希望能够将时区作为带时间戳的输入提供给 teradata,并在 CST 中获取输出时间戳。

理想情况下,作为加载过程的一部分,您会将时间戳 + 字符串转换为 TIMESTAMP WITH TIME ZONE 类型(具有 numeric 小时和分钟偏移量)。 (此外,如果需要,单独存储字符串。)对于输入 TIMESTAMP(无时区),Teradata 假定输入处于(加载会话的)会话时区并在内部转换为 GMT。默认情况下,Teradata 在输出时从内部格式隐式转换为会话时区。

Teradata 不提供根据单独存储的时区字符串从一个时区转换为另一个时区的功能。您可能会看到类似 Java time 的东西,用于将单独的时间戳和字符串组合成 ZonedDateTime。这可能会合并到 Teradata 中 运行 的 UDF 中。或者在客户端上,您可以在加载之前使用 Python pytz 之类的东西。