1
那些给出一个正确的结果:PostgreSQL的:SET TIME ZONE格式化
SET TIME ZONE '-04';
或SET TIME ZONE INTERVAL '-04:00';
SELECT current_setting('TIMEZONE'), now();
current_setting | now
-----------------+-------------------------------
-04:00:00 | 2014-10-29 06:45:35.694796-04
虽然这些被倒置:
SET TIME ZONE '-04:00';
SELECT current_setting('TIMEZONE'), now();
current_setting | now
-----------------+-------------------------------
-04:00 | 2014-10-29 14:52:25.322796+04
SET TIME ZONE '-04:00:00';
SELECT current_setting('TIMEZONE'), now();
current_setting | now
-----------------+-------------------------------
-04:00:00 | 2014-10-29 14:52:33.591539+04
我在做什么错?
我认为这是一个错误。这是因为POSIX时区与“正常”时区相反。请通过错误报告表单提出。 – 2014-10-29 12:00:56
@CraigRinger根据下面的答案,你还认为这是一个错误?也许至少这种记录的行为值得一些改进,比如在没有识别POSIX风格的时区时提出警告,或者当我们想要使用POSIX风格时需要明确的格式化? – Victor 2014-10-30 15:45:21
我认为这是一个记录的错误;-)。我知道POSIX时区处理很丑陋,但并没有意识到这是丑陋的。我们真的需要一个严格的模式。所以这不是新的,也没有必要报告,但是......糟糕。 – 2014-10-30 21:51:16