使用时区将文本转换为时间

时间:2018-05-30 14:59:10

标签: sql postgresql plpgsql

以下列格式接收时间:

17:42:40 GMT+0300 (EEST)

16:42:40 GMT+0200 (CEST)

12:42:40 GMT-0200 (WGST)

如何将此文本转换为时区 17:42:40+3类型,以便将其插入具有此类型的表格列。

2 个答案:

答案 0 :(得分:1)

t=# select replace('17:42:40 GMT+0300 (EEST)','00 (EEST)','')::timetz;
   replace
-------------
 17:42:40-03
(1 row)

https://www.postgresql.org/docs/current/static/datatype-datetime.html

  

要记住的另一个问题是在POSIX时区名称中,   正偏移用于格林威治的 west 位置。到处   否则,PostgreSQL遵循ISO-8601惯例,即积极的   时区偏移是格林威治的

你也可能想要将TZ转换为小时:分钟形式,忽略括号中的值:

t=# select '17:42:40 GMT+03:00'::timetz;
   timetz
-------------
 17:42:40-03
(1 row)

答案 1 :(得分:0)

为所有可能的情况找到更好的结果。

C:\Windows\System32\inetsrv\config\applicationHost.config