这是 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 是从哪里来的?那是服务器和客户端机器(美国/中部)的“奥尔森时区”,但为什么 Ruby 添加它而 psql 没有呢?
我一直在阅读文档,我很困惑。
服务器是 Postgres 9.0.4,客户端是 psql 9.1.4,sequel 是 3.33.0。