我安装Postgresql 9,显示的时间是服务器时间后1小时。
运行选择NOW()显示:2011-07-12 11:51:50.453842 00
服务器日期显示:Tue Jul 12 12:51:40 BST 2011
这是1小时后,但PHPpgadmin显示的时区是:TimeZone Etc / GMT0
我试图进入postgresql.conf并设置timezone = GMT然后运行重新启动,但没有改变。
任何想法,我以为会使用服务器时区,但显然不是?
解!:
我以前已经设置了格林尼治标准时间,这是一个小时后。在搜索结果之后,我需要将其设置为欧洲/伦敦。这考虑到了英国夏季的1小时,GMT并没有!
时区是会话参数。因此,您可以更改当前会话的时区。
见the doc。
set timezone TO 'GMT';
或者,更紧密地遵循sql标准,使用SET TIME ZONE
命令。注意“TIME ZONE”的两个单词,其中上面的代码使用单个单词“timezone”。
SET TIME ZONE 'UTC';
该文档解释了差异:
SET TIME ZONE extends Syntax defined in the sql standard. The standard allows only numeric time zone offsets while Postgresql allows more flexible time-zone specifications. All other SET features are Postgresql extensions.