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 为什么选择localtimestamp会在两台不同的带有Postgres的机器上返回不同的时区_Postgresql_Timezone_Clock - Fatal编程技术网

Postgresql 为什么选择localtimestamp会在两台不同的带有Postgres的机器上返回不同的时区

Postgresql 为什么选择localtimestamp会在两台不同的带有Postgres的机器上返回不同的时区,postgresql,timezone,clock,Postgresql,Timezone,Clock,如果我在Postgres 9.2上执行 show timezone 在我的机器上,它返回本地时区 America/Denver 当我对旁边的人运行相同的postgres命令时,它会返回 US/Eastern 有人知道为什么Postgres服务器会为两个不同的人使用两个不同的时区吗?语句show timezone显示当前客户端会话的时区。这可能是也可能不是PostgreSQL server的时区 要了解其工作原理,请在同一台计算机上打开两个终端会话,并使用psql将它们分别连接到数据库。(我

如果我在Postgres 9.2上执行

show timezone
在我的机器上,它返回本地时区

America/Denver
当我对旁边的人运行相同的postgres命令时,它会返回

US/Eastern

有人知道为什么Postgres服务器会为两个不同的人使用两个不同的时区吗?

语句
show timezone
显示当前客户端会话的时区。这可能是也可能不是PostgreSQL server的时区

要了解其工作原理,请在同一台计算机上打开两个终端会话,并使用psql将它们分别连接到数据库。(我正在连接一个名为“sandbox”的数据库。我的PostgreSQL server设置为本地时间。也就是说,PostgreSQL.conf的行
timezone='localtime'

在第一个会话中,将时区设置为加利福尼亚州伯克利市

sandbox=# set time zone 'PST8PDT';
(对于
设置
的语句是
会话
。此语句相当于
设置会话时区'PST8PDT';

在第二个会话中,将时区设置为UTC

sandbox=# set time zone 'UTC';
这两个都不是我的本地时区

现在在每个会话中运行
show timezone
。第一个将返回“PST8PDT”;第二个将返回“UTC”。服务器的时区仍然是本地时间

sandbox=# show time zone; TimeZone ----------- localtime 如果我断开其中一个连接,然后再次连接,我将返回当地时间

sandbox=# show time zone; TimeZone ----------- localtime 沙盒=#显示时区; 时区 ----------- 本地时间
也许你正在使用不同的设置,所以回到默认设置:将时区设置为默认;