Я пытаюсь выбрать строки, которые находятся в пределах определенного периода времени:
$sql = mysql_query(" SELECT * FROM table WHERE ... AND
date BETWEEN ('$date' - Interval 2 YEAR) AND ('$date' + Interval 2 YEAR)
OR date ISNULL");
Формат дат, сохраняемых в этом столбце, - мм / дд / гггг
a.как выбрать временной интервал?в настоящее время он выбирает все строки, а не только те, которые находятся в этом диапазоне дат.
b.Использую ли я правильный синтаксис, чтобы убедиться, что мы также включили все нулевые параметры?
Обновление.
После ответов и комментариев я изменил тип столбца на «Дата»"(это был varchar), а также изменили текущий тип существующих записей на правильный формат даты.
Теперь у меня есть 2 вопроса: a.Это все еще не работает ... В чем еще может быть проблема?б.Я хочу изменить в PHP, где запись сохраняется.Как я могу пойти по этому поводу?Правильно ли следующее:
$new_date = mysql_query("STR_TO_DATE($old_date_string,'%m/%d/%Y')");
Решение.
Сначала я изменил тип столбца на DATE (с VARCHAR).
Второй,Я переместил и преобразовал все существующие записи из существующего столбца и типа (str) в новый тип (date) и новый столбец.
В-третьих, я добавил скобки в раздел «date».
В-четвертых, я изменил ISNULL
на IS NULL
- добавив пробел, который превращает его из функции в оператор.
В-пятых, сейчас я обновляю свой сценарий, чтобы в будущем даты сохранялисьв новый столбец в новом типе, преобразовав их в правильный fprmat перед сохранением их в базе данных.
Спасибо @nnicholas и всем.