SQL: возможно ли% CURDATE% в SELECT - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь использовать sql CURDATE () в формате «ГГГГ-ММ-ДД» для выбора элементов со вчерашнего дня, но столбец времени находится в формате «ГГГГ-ММ-ДД ЧЧ-ММ-СС».

Можно ли поставить CURDATE между %% , что-то вроде этого примера (что явно не работает); SELECT * FROM table WHERE created_at LIKE % CURDATE() - INTERVAL 1 day %

Или, если нет варианта синтаксиса, который использует творог, а также который работает, пожалуйста, порекомендуйте другой способ, если есть какие-то из sql трюков.

1 Ответ

1 голос
/ 16 июня 2020

Не используйте строковые функции как строки! Если вы хотите вчера, вы можете использовать:

where created_at >= current_date - interval 1 day and
      created_at < current_date

Плюс, это может использовать индекс.

Или вы можете упростить это до:

where date(created_at) = current_date - interval 1 day 

И эта версия не использует индекс для created_at.

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