Postgres からのクエリ結果は次のとおりです。
$ psql ... -c 'select the_date from foo where foo_id in (998,999)'
the_date
------------------------
2012-03-07 09:34:47.98
2012-03-16 11:31:25.336
the_date は「タイムゾーンなしのタイムスタンプ」です。
以下は Ruby プログラムです。
#!/usr/bin/env ruby
require 'sequel'
@DB = Sequel.connect({...})
query = "select the_date from foo where foo_id in (998,999)"
@DB[query].each do |row|
warn row
end
そしていくつかの出力:
{:the_date=>2012-03-07 09:34:47 -0600}
{:the_date=>2012-03-16 11:31:25 -0500}
-0500 と -0600 はどこから来たのですか? これは、サーバーとクライアント マシン (US/Central) の「オルソン タイムゾーン」ですが、Ruby はそれを追加し、psql は追加しないのはなぜですか?
ドキュメントを読んでいて、完全に混乱しています。
サーバーは Postgres 9.0.4、クライアントは psql 9.1.4、続編は 3.33.0 です。