Как извлечь месяц и год в дату MySQL и сравнить их?

Как извлечь месяц и дату с даты mySQL и сравнить ее с другой датой?

Я нашел этот MONTH(), но он получает только месяц. Я ищу месяц и год.

Ответ 2

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

SELECT YEAR(date) AS 'year', MONTH(date) AS 'month'
 FROM Table Where Condition = 'Condition';

Ответ 3

Хотя это обсуждалось в комментариях, пока нет ответа, содержащего его, поэтому его легко пропустить. DATE_FORMAT работает очень хорошо и гибко обрабатывает множество различных шаблонов.

DATE_FORMAT(date,'%Y%m')

Чтобы поместить это в запрос:

SELECT DATE_FORMAT(test_date,'%Y%m') AS date FROM test_table;

Ответ 4

SELECT * FROM Table_name Where Month(date)='10' && YEAR(date)='2016';

Ответ 5

Вы можете проверить документы mySQL в отношении функций даты. http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

Существует функция YEAR(), так же как функция MONTH(). Если вы проводите сравнение, есть ли причина для сокращения даты? Вы действительно заинтересованы в игнорировании дневных различий, и если это так, как вы хотите это сделать?

Ответ 6

Также должен быть YEAR().

Что касается сравнения, вы можете сравнить даты, которые являются первыми днями этих лет и месяцев, или вы можете преобразовать пару year/month в число, подходящее для сравнения (то есть больше = позже). (Упражнение у читателя. Для подсказок прочитайте формат даты ISO.)

Или вы можете использовать несколько сравнений (т.е. годы сначала, а затем и месяцы).