5

psql で次のクエリを実行すると、7 つの結果が返されます。

SELECT generate_series('2012-10-14', CURRENT_DATE, interval '1 day'); # 7

ただし、Rails アプリケーションでまったく同じクエリを実行すると、8 つの結果が得られます。

result = ActiveRecord::Base.connection.execute "SELECT generate_series('2012-10-14', CURRENT_DATE, interval '1 day');"
puts result.count # 8

これはタイムゾーンと関係があるようですが、何が問題なのかわかりません。私のapplication.rbには次のものがあります

config.time_zone = 'Eastern Time (US & Canada)'

これは、postgresql.conf にあるのと同じタイム ゾーン設定です。

Rails アプリケーションが結果に 1 日追加する理由がわかりません。誰でも洞察を提供できますか?

これは 1 日の終わり (午後 8 時以降) にのみ発生するように見えるため、タイム ゾーン オフセットがあると思われます。

4

1 に答える 1