У меня есть приложение rails, где я сохраняю create_at как datetime (стандарт).
Я строю форму для поиска, и я обнаружил, что должен использовать find_by_sql для выполнения некоторых сложных подзапросов. Форма имеет диапазон дат (без времени) для поиска элементов в поле selected_at.
Проблема, которую я нахожу, заключается в том, что если я передам только строку даты для диапазона для запроса ...
... status_changes.created_at between '2009-01-24' and '2009-03-12' ...
Я получаю обратно записи, которые имеют дату create_at 2009-01-23 17:10:39 -0800, потому что они хранятся в БД как 2009-01-24 01:10:39 (UTC)
Как я могу это исправить, чтобы результат не возвращал соответствующую запись?
Кажется, мне нужно либо преобразовать диапазон дат, чтобы он был специфичен для UTC, либо указать find_by_sql выполнять поиск по текущему часовому поясу вместо чтения столбца как utc ...
Кто-нибудь принимает?
John