Получить текущий год и следующую форму mysql

Я выбираю различные вещи из таблицы. Проблема в том, что я хочу только выбрать их, если они относятся к текущему году и следующему году.

Моя таблица выглядит так

Название Текст Дата

Дата формируется следующим образом 0000-00-00 и находится в формате «дата»,

Итак, вопрос в том, как я могу выбрать только элементы только в этом году и в следующем?

Пример: год 2012, у меня есть элементы в моей старой таблице, и я не хочу, чтобы они показывали – я хочу только выбрать элементы с первого 2012 года 1 января и последний в этом случае 31 декабря 2013 года в текущем году 2012 + 1 год.

Большое спасибо за любую помощь!

SELECT * FROM table WHERE YEAR(date) = YEAR(CURDATE()) OR YEAR(date) = YEAR(CURDATE()) + 1 

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

 SELECT * FROM table WHERE date BETWEEN CONCAT(YEAR(CURDATE()),'-01-01') AND CONCAT(YEAR(CURDATE())+1,'-12-31') 

Как уродливо, как кажется, он позволяет вашему запросу использовать индекс в поле date .

Лучшая идея – создать предельные даты во внешнем скрипте PHP, чтобы запрос мог использовать кеш запросов.


Если вы хотите показывать только те предметы, которые не старше двух лет, вы можете сделать это:

 SELECT * FROM table WHERE date >= CURDATE() - INTERVAL 2 YEAR;