#php #mysql #sql
#php #mysql #sql
Вопрос:
у меня есть переменное имя поля meeting_date, в котором хранится дата типа мм / дд / гггг, как в 25.12.2016, и теперь я пытаюсь извлечь результаты из базы данных, где месяц и год соответствуют дате meeting_date из запроса формы, как показано ниже, но я не получаю результата
$y =$_REQUEST['y'];
$m =$_REQUEST['m'];
$date = "$y/$m";
$table = mysql_query("SELECT * FROM records WHERE meeting = 'Yes' AND (meeting_date LIKE '%".$date."%') ORDER BY id DESC");
$rows = mysql_fetch_assoc($table);
ценю ваше время и помощь
Комментарии:
1. Используйте
DATE_FORMAT
следующим образомDATE_FORMAT(meeting_date, '%Y/%m') = $date
2. @ProfessorZoom это не работает, потому что это строка, не сохраненная в формате datetime
3. Вы пробовали это? Я сделал, и у меня это сработало
Ответ №1:
Предполагая, что ваш ввод представляет собой строку в формате dd / mm / гггг, вы могли бы использовать str_to_date и date_format
mysql_query("SELECT *
FROM records
WHERE meeting = 'Yes'
AND date_format(str_to_date(meeting_date, '%d/%m/%Y' ), '%Y/%m')
= date_format(str_to_date ($date, '%d/%m/%Y') , '%Y/%m')
ORDER BY id DESC");
Комментарии:
1. ах, это тоже хорошее решение. ценю это
2. Хорошо, @johrampong .. надеюсь, это может быть полезно
3. Это действительно полезно, приятель
4. что ж, тогда вы можете оценить как полезное
5. ах да, совершенно забыл извинения
Ответ №2:
meeting_date LIKE '%".$m."/%"."%/".$y."%'.
У вас есть день между месяцем и годом.
Было бы намного лучше, если бы вы могли изменить поле varchar на date и отформатировать, как это выглядит на сайте после запроса. Тогда ваш запрос будет выглядеть следующим образом:
MONTH(meeting_date) = $m AND YEAR(meeting_date) = $y
Комментарии:
1. я попробую второе решение.