Как в запросе обрезать данные при получении сравнении?

267
08 августа 2017, 17:03

Здравствуйте, столкнулся с такой проблемой, что делаю фильтры на сайте, по городу, месяцу и дню.

Для города я сделал приравнивание WHERE city = $_GET['city']

Вот сам запрос:

$cat_result = mysqli_query( "SELECT * FROM `poster` WHERE `cat` = '".$cat_q['id']."' AND `city` = '".$_GET['city']."'");

Не могу сделать такой же фильтр для месяца и дня, потому что эти данные хранятся в одном столбце формата datetime и имеет вид 0000-00-00 00:00:00

Вот допустим дата 2017-09-21 19:00:00 месяц этой даты 09.Мне его нужно = к $_GET['month'] (Сам монтх = 09) то есть если я буду приравнивать запрос в таком виде

$cat_result = mysqli_query( "SELECT * FROM `poster` WHERE `cat` = '".$cat_q['id']."' AND `date` = '".$_GET['month']."'");

не будет работать ибо будет такое 2017-09-21 19:00:00 = 09

А мне нужно сразу в запросе выбрать лишь месяц.

Надеюсь, что разложил всё по полочкам :)

Заранее спасибо !

Answer 1

Попробуйте такой вариант. Давно с MySQL не работал — не знаю будет или нет эффективно работать.

SELECT
    p.id
  , p.city
FROM
  poster p
WHERE
  YEAR(p.date)      = 2017
  AND MONTH(p.date) = 9
;
Answer 2

"SELECT * FROM poster WHERE cat = '".$cat_q['id']."' AND DATE_FORMAT(date, '%m') = '".$_GET['month']."'"

READ ALSO
SQL Обратная комбинация distinct

SQL Обратная комбинация distinct

Как сделать так что бы при использовании distinct или может другим способом пары типа 10\20 и 20\10 считались одинаковыми? И не дублировались в запросе?

328
Что лучше для SEO сайта (node.js vs php)? [требует правки]

Что лучше для SEO сайта (node.js vs php)? [требует правки]

Я хочу создать сайт который максимально дружелюбен с SEOОднако, я знаю node

227
Дата и время PHP

Дата и время PHP

Почему то время выводится с отставанием в 2 часа 50 минутКак сделать так, чтобы выводилось правильно?

241
INSERT INTO нет реакции

INSERT INTO нет реакции

При отправке значения не вносятся в таблицу (в phpmyadmin запрос работает)

312