2012-01-20 94 views
25

Estoy tratando de seleccionar los últimos 6 meses de entradas en una tabla, tengo una columna llamada datetime y está en formato de fecha y hora mysql.Cómo seleccionar los últimos 6 meses desde la tabla de noticias usando MySQL

He visto muchas maneras de usar el intervalo y otros métodos, ¿qué método debo usar? Gracias

+3

si el campo que en realidad se llama de fecha y hora Necesitaremos 'para rodearlo. datetime es una palabra reservada. La respuesta de Pablo funcionaría, pero donde tiene 'your_dt_field' puede que necesites poner' datetime' con el caracter de escape 'apropiado. – xQbert

Respuesta

79

Uso DATE_SUB

.... where yourdate_column > DATE_SUB(now(), INTERVAL 6 MONTH) 
+0

La función DATE_SUB() resta el intervalo a partir de la fecha especificada. En este caso, "ahora() - 6 meses". – prageeth

+0

Dentro de la función 'DATE_SUB()', ¿Puedo usar 'MAX ()' en lugar de 'now()' ??? Porque estoy enfrentando una situación similar y tengo que verificar los datos de los últimos 6 meses desde la última fecha presente en la columna de fecha en lugar de la fecha de hoy. – LearneR

11

Prueba esto:

select * 
    from table 
where your_dt_field >= date_sub(now(), interval 6 month); 

de consulta lee: dame todas las entradas de table donde el campo correspondiente a la fecha de entrada es más reciente que 6 meses.

+0

your_dt_field ¿cuál será su formato? también cómo se puede utilizar la fecha actual de los sistemas –

1

me trató @ user319198 respuesta a mostrar los últimos 6 meses (suma de) las ventas, funcionó pero se enfrentó a un problema en el mes más antiguo, no consigo la cantidad de ventas de la todo el mes. El resultado comienza desde el día actual equivalente de ese mes.

Sólo quiero compartir mi solución si alguien interesado: -

yourdate_column > DATE_SUB(now(), INTERVAL 7 MONTH) 
limit 6 

También será grande si alguien tiene una mejor solución para mi caso J.

Cuestiones relacionadas