POSTGRESQL - 将多个时区转换为CST

时间:2018-04-05 08:37:00

标签: sql postgresql

我的时间戳存储在我的表中,该时间戳以String格式存储。然而,我正在尝试创建一个将它们保存为时区的视图。我使用了以下查询:

SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC') AT TIME ZONE 'CST';

但是我注意到我的数据在表格中也有CST和IST格式。所以我的问题是

    如果表格中有CST和IST格式,
  1. 会影响时间转换吗?
  2. 有更好的处理方法吗?
  3. 提供表值的屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:0)

我无法找到任何可以给我一个代码来处理多个时区的解决方案。我用一个简单的案例来解决问题。但这不可扩展,因为我的数据库可以添加新的时区。

CASE 
WHEN right(t2.stream_item_date,3) = 'UTC' THEN to_timestamp(t2.stream_item_date, 'YYYY-MM-DD hh24:mi:ss') at time zone 'CST' 
WHEN right(t2.stream_item_date,3) = 'CST' then to_timestamp(t2.stream_item_date, 'YYYY-MM-DD hh24:mi:ss') at time zone 'CST'
WHEN right(t2.stream_item_date,3) = 'CDT' then to_timestamp(t2.stream_item_date, 'YYYY-MM-DD hh24:mi:ss') at time zone 'CDT' 
END as stream_item_date

随意添加。