prompt$ date
Mon Oct 7 17:32:24 UTC 2013
prompt$ psql -U postgres
postgres=# show timezone;
TimeZone
----------
GMT
(1 row)
postgres=# select now();
now
-------------------------------
2013-10-07 20:32:42.354384+03
(1 row)
+03 タイムゾーン形式で返すのはなぜですか? ここで明らかに欠けているものは何ですか?
編集: 問題は解決しましたが、まだ疑問が残っています。何が起こったかは次のとおりです。
postgres サーバーを再起動せずに、システムの OS タイムゾーンを変更しました。以前の OS のタイムゾーンは確かに +03 でした。postgres を再起動した後、正常に動作しました。しかし、これは奇妙な状況です: postgresql.conf にはタイムゾーンが明示的に定義されておらず、クライアント (psql) は常に「show timezone」によって報告されたタイムゾーンでタイムスタンプを出力する必要があります。したがって、この説明のつかない質問がまだあります。
psql がタイムゾーン設定として GMT を報告していたのに、OS の新しいタイムゾーンでタイムスタンプを表示した理由。これは予想される動作ですか?