Чтобы добавить ответ Roadmaster, у меня была похожая проблема: обычные временные метки Rails хранились в базе данных на основе UTC, но мне нужно было запросить, чтобы найти все записи, созданные сегодня в соответствии с местным временем.zone.
Запрос выглядел так:
completions.where("created_at BETWEEN ? AND ?",
Date.today, Date.today + 1.day).count >= 1
Я исправил это, вызвав #to_time
в указанные даты, как показано ниже.Это преобразовало их в метку времени, имеющую надлежащий часовой пояс, и в базе данных были выбраны правильные записи, что фактически сделало запрос осведомленным о часовом поясе.
completions.where("created_at BETWEEN ? AND ?",
Date.today.to_time, Date.today.to_time + 1.day).count >= 1