背景
具有默认created_at
列的文章模型
导轨config.time_zone = 'Warsaw'
我有一篇文章 created_at = local time 2012-08-19 00:15 (2012-08-18 22:15 in UTC)。
目标
接收 2012-08-19 (当地时间)创建的所有文章。
我的(无法正常工作)解决方案
Article.where(
"date_trunc('day', created_at AT TIME ZONE '#{Time.zone.formatted_offset}')
= '#{Date.civil(2012, 8, 19)}'"
)
生成SQL:
SELECT "articles".* FROM "articles"
WHERE (date_trunc('day', created_at AT TIME ZONE '+01:00') = '2012-08-19')
并返回一个空集。但是,如果我在 psql 中运行相同的查询,它会返回一篇文章……这让我很困惑。
问题
我做错了什么以及如何解决?