2011-01-26 16 views
12

Estoy seleccionando varias cosas de una tabla. El problema es que solo quiero seleccionarlos si pertenecen al año actual y al año siguiente.Obtener el año actual y la próxima forma mysql

Mi mesa se parece a esto

texto Título Fecha

La fecha se formatea como esto 0000-00-00 y está en el formato de "fecha"

Así que la pregunta ¿Cómo puedo seleccionar solo artículos solo este año y el siguiente?

Ejemplo: el año es 2012, tengo elementos en mi mesa que son viejos y no los quiero que muestren - Solo quiero seleccionar los artículos del primer 2012 1 de enero y el último en este caso 31 Dec 2013 actual año 2012 + 1 año.

¡Muchas gracias por cualquier ayuda!

Respuesta

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

tan feo como parece, que permite la consulta para utilizar índice en date campo.

La mejor idea es crear fechas límite en el script PHP externo, para que la consulta pueda usar el caché de consultas.


Si sólo desea mostrar los elementos, que son no más de dos años, puede hacer esto: sin embargo

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