JaironLanda Ответов: 3

Проблема запроса в mysql


Это мой запрос mysql для фильтрации данных в БД:
$MyQuery = 'SELECT * FROM `class` WHERE `Date` >= CURDATE() AND CURTIME() < End_Time';


Я должен получить базу данных по этому запросу.

Но если я введу свой
End Time
тогда меньше
CURTIME()
и
Date
равно или терка тогда
CURDATE()
у меня пустые данные!

Что я уже пробовал:

Изменение типа данных в базе данных по-прежнему вызывает ошибку при выполнении данных в базе данных по этому запросу
$MyQuery = 'выберите * от `класса`, где `дата` &ГТ;= CURDATE() и CURTIME() &ЛТ; значение end_time';

3 Ответов

Рейтинг:
23

Andy Lanng

Вы где пункт выглядит немного запутанным:

Итак, в вашем пункте говорится, что:
"Дата" больше (или равна) сейчас
End_Time больше, чем сейчас

Может быть, это правильно? Я не знаю, для чего вам нужен ваш запрос, но похоже, что вы собираетесь использовать диапазон дат между датой и End_Time?

в этом случае вы можете использовать между:

WHERE CURDATE() between `Date`  AND  End_Time

Между включительно на обоих концах так что может быть не идеально

Если это не проблема, то, пожалуйста, уточните контекст дат и запрос в целом


Рейтинг:
2

chrisanthony233

Подробнее читайте здесь PHP-Mysql query problem-переполнение стека[^]


Рейтинг:
0

Patrice T

Это было бы проще в использовании NOW() и сравните со значением DateTime.
В противном случае переписывание WHERE необходимое предложение.
К чему-то вроде:

$MyQuery = 'SELECT * FROM `class` WHERE `Date` > CURDATE() OR (`Date` = CURDATE() AND CURTIME() < End_Time )';