postgres默认时区

我安装了PostgreSQL 9,它显示的时间是服务器时间的1小时。

运行Select NOW()显示: 2011-07-12 11:51:50.453842+00

服务器date显示:2012年7月12日12:51:40 BST 2011

它是1小时后,但phppgadmin中显示的时区是:TimeZone Etc / GMT0

我试图进入postgresql.conf并设置timezone = GMT,然后运行重新启动,但没有改变。

我认为它会使用服务器时区的任何想法,但显然不是?!

解决方法!:我确实设置了格林威治标准时间之前,这是一个小时后..search周围后,我需要将其设置为欧洲/伦敦。 这考虑到在英国夏令时+1小时,格林尼治标准时间不会!

时区是一个会话参数。 所以,你可以改变当前会话的时区。

看文档 。

 set timezone TO 'GMT'; 

或者,更严格地遵循SQL标准,使用SET TIME ZONE命令。 注意两个单词“TIME ZONE”,上面的代码使用单个单词“timezone”。

 SET TIME ZONE 'UTC'; 

该文件解释了不同之处:

SET TIME ZONE扩展了SQL标准中定义的语法。 该标准只允许数字时区偏移,而PostgreSQL允许更灵活的时区规范。 所有其他SETfunction都是PostgreSQL扩展。

为了实现Postgres 9.1中的时区更改,您必须:

1.-在/usr/share/postgresql/9.1/中的“timezones”文件夹中search合适的文件,在我的情况下是“America.txt”,在其中search离您最近的位置,然后复制左列中的第一个字母。

例如:如果你在“纽约”或“巴拿马”,那就是“EST”:

 # - EST: Eastern Standard Time (Australia) EST -18000 # Eastern Standard Time (America) # (America/New_York) # (America/Panama) 

2.-取消注释postgresql.conf文件中的“timezone”行,并将您的时区显示如下:

 #intervalstyle = 'postgres' #timezone = '(defaults to server environment setting)' timezone = 'EST' #timezone_abbreviations = 'EST' # Select the set of available time zone # abbreviations. Currently, there are # Default # Australia 

3.-重新启动Postgres

从以下select时区:

 SELECT * FROM pg_timezone_names; 

并设置示例:

 ALTER DATABASE postgres SET timezone TO 'Europe/Berlin'; 

使用你的数据库名称。

穆罕默德·乌萨马 接受的答案是正确的。

configuration参数名称

该答案显示了如何使用以下命令设置Postgres特定的configuration参数:

 SET timezone TO 'UTC'; 

…其中timezone不是SQL命令,它是configuration参数的名称。

看到这个文件 。

标准的SQL命令

或者,您可以使用SQL规范定义的SQL命令: SET TIME ZONE 。 在这个语法中,一对单词TIME ZONEreplace“timezone”(实际的SQL命令与参数名称),并且没有“TO”。

 SET TIME ZONE 'UTC'; 

这个命令和上面的命令都有相同的效果,只能设置当前会话的值。 为了使更改永久,请参阅兄弟的答案 。

看到这个文件 。

时区名称

您可以指定一个适当的时区名称 。 其中大部分是大陆/地区。

 SET TIME ZONE 'Africa/Casablanca'; 

…要么…

 SET TIME ZONE 'America/Montreal'; 

避免使用3或4个字母缩写,如ESTIST因为它们既不标准也不唯一。

获取当前区域

要查看会话的当前时区,请尝试以下任一语句。 从技术上讲,我们正在调用SHOW命令来显示运行时参数。

 SHOW timezone ; 

…要么…

 SHOW time zone ; 

美国/太平洋

除了以前的答案,如果您使用工具pgAdmin III,您可以设置时区如下:

  1. 通过工具>服务器configuration> postgresql.conf打开Postgresconfiguration
  2. 查找input时区并双击打开
  3. 更改值
  4. 重新加载服务器以应用configuration更改(播放button顶部或通过服务)

Postgres配置在pgAdmin III