У меня есть таблица mysql со столбцами section, is_date_based (значения Да / Нет), date_start, date_end и showhide
запрос
$query = "select * from tabele where section='Festival Wish' and ((is_date_based='No') OR (is_date_based='Yes' and (CURDATE() between date_start and date_end ))) and showhide='0' order by sort_order asc";
условие 1.: Теперь, если is_date_based='No' и showhide='0', строка должна отображаться ... И ЭТО РАБОТАЕТ ....
условие 2.: Но если id_date_based='Yes' и если current date-time - это between date_start and date_end и showhide='0', должна отображаться строка тогда и только тогда ...
........
но, к сожалению, условие 2 не работает даже с необходимыми значениями и данными в таблице mysql ...
структура таблицы mysql
section is_date_based showhide date_start date_end
Festival Wish Yes 0 2018-09-01 05:00:00 2018-09-05 11:30:00
Festival Wish No 0 0000-00-00 00:00:00 0000-00-00 00:00:00
Здесь отображается вторая запись, правильно с указанным выше запросом, но первая запись не отображается, даже если текущая дата находится между date_start и date_end ...
добавить правильный образец данных и ожидаемый результат .. ..и какой тип данных - date_start и date_end? . они осмеливаются datetime или varchar ??
Пример структуры таблицы @AlexShesterov добавлен в отредактированный вопрос .. пожалуйста, прочтите вопрос еще раз ..
Пример структуры таблицы @scaisEdge добавлен в отредактированный вопрос .. пожалуйста, прочтите вопрос еще раз ..
date_start и date_end - это datetime или varchar ??
@scaisEdge date_start и date_end - это дата и время






может быть вам нужно сейчас (), а не творог (.
Дата возврата curdate(), например, 2018-09-01 Дата возврата now() и время 2018-09-05 20:34:00 ..
может быть, вам также нужна корректировка времени для вашего образца, 11:30 прошло
$query = "select *
from tabele
where section='Festival Wish'
and ( (is_date_based='No')
OR (is_date_based='Yes' and (NOW() between date_start and date_end )))
and showhide='0' order by sort_order asc";
Ох ... просто замена творога на СЕЙЧАС, работала как по волшебству ... Небольшое изменение имело для меня огромное значение .... спасибо ....
@DrJManish .. curdate () возвращает только дату, а не время ..
Опубликуйте вывод следующего оператора MySQL:
SHOW CREATE TABLE tabele