2010-06-25 99 views
19

Cómo obtener los últimos 3 meses registros de la tabla.obtener los últimos tres meses registros de la tabla

SELECT * FROM tabla WHERE mes> CURRENT_DATE-120 y el mes < fin CURRENT_DATE por mes;

He utilizado la pregunta anterior ¿es correcto? ¿debo usar esto para obtener el último registro de 3 meses de la tabla.

+0

seleccione c.id credito, p.nombres, p.apellidos de creditos c, personas p donde c.solicitante = p.id y c. aprobado = true y c.fechaini entre CURRENT_DATE - INTERVAL '3 months' y CURRENT_DATE group by p.nombres, p.apellidos, c.id; –

Respuesta

62

Usted puede utilizar una función de INTERVAL instrucción

Comprobar cómo funciona esto:

SELECT CURRENT_DATE - INTERVAL '3 months' 

y puede volver a escribir su SQL a:

SELECT * from table where date > CURRENT_DATE - INTERVAL '3 months' 

(no verificado pero esto debería darle una idea de cómo usar la instrucción INTERVAL)

+1

. Probablemente debería tenerse en cuenta que este El método recuperaría registros que tienen un campo de 'fecha' que está entre la fecha actual y "hace 3 meses" (que sería esencialmente lo mismo que decir 28, 30 o 31 días atrás, dependiendo del mes). Si desea registros que tengan una fecha que se encuentre dentro de los últimos 3 meses calendario, deberá hacer algo diferente. – jstol

+0

@jstol ¿qué exactamente? – Rocketq

1

Trate de que:

SELECT * 
FROM table 
WHERE month BETWEEN EXTRACT(MONTH FROM NOW() - INTERVAL '3 months') 
AND EXTRACT(MONTH FROM NOW()) 
ORDER BY month 
; 
+1

¿Y cómo crees que va a funcionar a partir de enero? (No lo hará) –

+0

No lo sé, pero la pregunta lo implica ya que solo conocemos la existencia de la columna del mes y no sabemos si existe un año en su relación – analogue

Cuestiones relacionadas