/ / Rails get Date Частина DateTime з Time Zone - рубін на рейках, рубін, дата, час

Rails отримує частину дати DateTime з часовим поясом - ruby-on-rail, ruby, datetime, time

Я намагаюся виконати запит у рейках 3 із таким синтаксисом: CourseOrder.where("DATE(ordered_at) = ?", date).

Моя проблема полягає в тому, що рейки зберігають весь час у UTC, тому в моєму часовому поясі (+2) о 0:33 - четверте, але в UTC - 3-е число місяця. Чи є спосіб запитувати частину дати DateTime за допомогою часового поясу?

Відповіді:

0 для відповіді № 1

Не використовуйте дату, зробіть це так:

time = DateTime.civil_from_format(:local, 2011, 4, 9)
CourseOrder.where("ordered_at > ? AND ordered_at < ?", time - 1.day, time)

Ви зберігаєте дату, настільки запитуйте, що замість спроб використовувати дату, яка не враховує часові зони.


0 для відповіді № 2

вирішив проблему зі зміною значень, які я порівнюю.

У мене є значення "Дата", і тепер я порівнююзначення дати зі значенням дати, яке краще порівняння значення дати зі значенням дати, яке має бути невдалим. дякую за те, що ви провели мене в правильному напрямку