我运行一个Postgres 8.3数据库,其中时间似乎存储在没有时区的UTC中。我正在尝试以当地时间显示,但后缀不是'+01':
使用selectchedched_start_ts我得到:2014-01-20 05:01:35.663
在时区“ MET”中选择了schedule_start_ts:2014-01-20 05:01:35.663 + 01
我想获取本地时间的“ 2014-01-20 06:01:35.663”。
我正在使用的数据库无法修改,并且不允许修改数据的存储方式。
如果要格式化时间,请使用此to_char
功能。请参阅文档中的格式化功能。
regress=> SELECT to_char(
(TIMESTAMP '2014-01-20 05:01:35.663' AT TIME ZONE 'UTC')
AT TIME ZONE 'MET',
'YYYY-MM-DD HH:MI:SS'
);
to_char
---------------------
2014-01-20 06:01:35
(1 row)
该(TIMESTAMP 'xxx' AT TIME ZONE 'UTC')
让我一个timestamptz
正确的时间,通过重新演绎将TIMESTAMP
作为UTC之中。AT TIME STAMP
相反,第二个将timestamptz转换为timestamp
in时区MET
。然后将其格式化。
无论SQL标准提交者在设计时都在抽烟,我从来没有想过要靠近它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句