Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 时区不正确(如何正确设置时区)_Postgresql - Fatal编程技术网

Postgresql 时区不正确(如何正确设置时区)

Postgresql 时区不正确(如何正确设置时区),postgresql,Postgresql,这是PostgreSQL 如果我执行: set timezone to '+3:00'; select '2004-10-19 10:23:54'::TIMESTAMP WITH TIME ZONE; 我得到的结果是: 2004-10-19 10:23:54-03 2004-10-19 10:23:54+03 我已经将时区设置为+3,但它变成了-3。为什么时区的正变为负 如果我执行 set timezone to '-3:00'; select '2004-10-19 10:23:54':

这是PostgreSQL

如果我执行:

set timezone to '+3:00';
select '2004-10-19 10:23:54'::TIMESTAMP WITH TIME ZONE;
我得到的结果是:

2004-10-19 10:23:54-03
2004-10-19 10:23:54+03
我已经将时区设置为+3,但它变成了-3。为什么时区的正变为负

如果我执行

set timezone to '-3:00';
select '2004-10-19 10:23:54'::TIMESTAMP WITH TIME ZONE;
我得到的结果是:

2004-10-19 10:23:54-03
2004-10-19 10:23:54+03
同样,在时区,负数变成了正数。

从这里开始:

偏移字段指定与UTC的小时差,也可以指定分钟和秒差。它们的格式为hh[:mm[:ss]],可选地带有前导符号(+或-)。正号用于格林威治以西的区域。(请注意,这与PostgreSQL中其他地方使用的ISO-8601符号约定相反。)hh可以有一个或两个数字;mm和ss(如果使用)必须有两个

此外:

应该注意的是,POSIX风格的时区规范很容易拼写错误,因为没有检查时区缩写的合理性。例如,将时区设置为FOOBAR0将起作用,使系统有效地使用UTC的一个相当独特的缩写

底线是指定一个最小时区将产生输出,但不能保证准确