2011-09-21 16 views

Respuesta

13
SELECT * FROM table1 
WHERE mydate BETWEEN DATE_SUB(now(), INTERVAL 3 MONTH) AND now() 

O si desea permanecer dentro de los meses

SELECT * FROM table1 
WHERE MONTH(mydate) BETWEEN MONTH(DATE_SUB(now(), INTERVAL 3 MONTH)) AND MONTH(now()) 
    AND YEAR(mydate) BETWEEN YEAR(DATE_SUB(now(), INTERVAL 3 MONTH)) AND YEAR(now()) 

Esta última versión se ejecutará mucho más lento, ya que no puede usar un índice para mydate sin embargo.

+0

sus soluciones funcionan bien si la fecha actual es 01/01/2012. Pero cuando cambio la fecha actual al 21/09/2011, obtuve cero resultado. – softboxkid

+0

La fecha debe estar en formato aaaa-mm-dd, use '2011-09-21' como su fecha. – Johan

+0

ok ahora usé la primera solución. pero esa solución siempre devuelve 2 filas en lugar de 3 ¿por qué? Ya cambio la fecha en aaaa-mm-dd – softboxkid

Cuestiones relacionadas