Как извлечь месяц и дату с даты mySQL и сравнить ее с другой датой?
Я нашел этот MONTH(), но он получает только месяц. Я ищу месяц и год.
Как извлечь месяц и дату с даты mySQL и сравнить ее с другой датой?
Я нашел этот MONTH(), но он получает только месяц. Я ищу месяц и год.
в 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';
Если вы сравниваете даты, извлеките полную дату для сравнения. Если вы сравниваете только годы и месяцы, используйте
SELECT YEAR(date) AS 'year', MONTH(date) AS 'month'
FROM Table Where Condition = 'Condition';
Хотя это обсуждалось в комментариях, пока нет ответа, содержащего его, поэтому его легко пропустить. DATE_FORMAT работает очень хорошо и гибко обрабатывает множество различных шаблонов.
DATE_FORMAT(date,'%Y%m')
Чтобы поместить это в запрос:
SELECT DATE_FORMAT(test_date,'%Y%m') AS date FROM test_table;
SELECT * FROM Table_name Where Month(date)='10' && YEAR(date)='2016';
Вы можете проверить документы mySQL в отношении функций даты. http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
Существует функция YEAR(), так же как функция MONTH(). Если вы проводите сравнение, есть ли причина для сокращения даты? Вы действительно заинтересованы в игнорировании дневных различий, и если это так, как вы хотите это сделать?
Также должен быть YEAR().
Что касается сравнения, вы можете сравнить даты, которые являются первыми днями этих лет и месяцев, или вы можете преобразовать пару year/month в число, подходящее для сравнения (то есть больше = позже). (Упражнение у читателя. Для подсказок прочитайте формат даты ISO.)
Или вы можете использовать несколько сравнений (т.е. годы сначала, а затем и месяцы).