Подтвердить что ты не робот

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

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

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

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

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

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

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

Спасибо за помощь!

4b9b3361

Ответ 2

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

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

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


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

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