Как запросить дату, используя strftime для форматирования - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь собрать все записи за месяц.Строка, с которой я должен запросить, имеет следующий формат 2019-01-12.Запись, к которой я обращаюсь, представляет собой запись DateTime, поэтому она имеет следующий формат: 2018-08-11 13:39:22.959330.

. Поэтому я пытаюсь структурировать запрос, который бы достигал этого

Score.where('user_id = ? AND date_closed.strftime("%Y-%m) = ?', current_user.id, date)

Где date - это строка 2019-01-12.Приведенный выше код выдает ошибку

FUNCTION date_closed.strftime не существует

Я сделал Google, но не смог найти что-то, что достигло этого.В большинстве решений используется поиск по диапазону дат, и я действительно хотел бы попытаться сохранить метод поиска таким же.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Вы можете использовать функции mysql для данных YEAR и MONTH:

Score.where('user_id = ? AND YEAR(date_closed) = ? AND MONTH(date_closed) = ?', current_user.id, date.year, date.month)
0 голосов
/ 11 февраля 2019

Для этого у вас есть функция DATE_FORMAT https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

DATE_FORMAT(date_closed, "%Y-%m")

РЕДАКТИРОВАТЬ: вам также нужно будет отформатировать дату, которую вы передаете запросу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...