У меня есть простая функция VBA, которая показывает записи с текущей даты и все, что за 21 дней.
WHERE date_added between Date() and DateAdd('d', -21, Date())
Как я могу получить тот же эффект, используя PHP и MySQL?
Когда я запускаю код выше, я получаю эту ошибку:
«У вас есть ошибка в вашем синтаксисе SQL; обратитесь к руководству, соответствующему вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с ‘) и DateAdd (‘ d ‘, -21, Date ())’ в строке 1″
На диалекте MySQL вы хотите
WHERE date_added BETWEEN CURDATE() - INTERVAL 21 DAY
AND CURDATE()
Обратите внимание, что это работает правильно, только если date_added является типом данных DATE. Если он имеет временную составляющую, которую вы хотите
WHERE date_added >= CURDATE() - INTERVAL 21 DAY
AND date_added < CURDATE() + INTERVAL 1 DAY
Других решений пока нет …