Как извлечь месяц и год в дате MySQL и сравнить их? - PullRequest
27 голосов
/ 20 октября 2011

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

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

Ответы [ 6 ]

59 голосов
/ 08 ноября 2012

в Mysql Doku: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_extract

SELECT EXTRACT( YEAR_MONTH FROM `date` ) 
FROM `Table` WHERE Condition = 'Condition';
29 голосов
/ 20 октября 2011

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

SELECT YEAR(date) AS 'year', MONTH(date) AS 'month'
 FROM Table Where Condition = 'Condition';
16 голосов
/ 05 октября 2017

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

DATE_FORMAT(date,'%Y%m')

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

SELECT DATE_FORMAT(test_date,'%Y%m') AS date FROM test_table;
5 голосов
/ 22 октября 2016
SELECT * FROM Table_name Where Month(date)='10' && YEAR(date)='2016';
1 голос
/ 20 октября 2011

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

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

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

1 голос
/ 20 октября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...