@eldar_web

Как в Ruby on Rails поле created_at использовать в mysql-запросе?

Обычно такая штука работает STR_TO_DATE(string, '%d.%m.%Y'), пример:
Post.where("STR_TO_DATE('02.11.2016', '%d.%m.%Y') < STR_TO_DATE('01.01.2017', '%d.%m.%Y')")

Но если использовать поле created_at, то не работает, пример:
Post.where("STR_TO_DATE(created_at, '%d.%m.%Y') < STR_TO_DATE('01.01.2017', '%d.%m.%Y')")

Как решить проблему?
  • Вопрос задан
  • 296 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Из комментариев created_at является нормальным timestamp или datetime полем. Поэтому его не только не нужно приводить к строке и парсить повторно в дату (с неверным форматом к тому же), но ещё и очень вредно так делать, т.к. исключает возможность использования индекса.

created_at < STR_TO_DATE('01.01.2017', '%d.%m.%Y')
Дату возможно отформатировать в Y-m-d формат на приложении, это уже как удобнее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы