Wednesday 26 December 2012

Consultar por un peridodo de fecha en PostgreSQL



En MySQL existe la sentencia BETWEEN pero en PostgreSQL no hay tal BETWEEN, hay dos opciones, pero una de ellas no lo hace del todo bien

Teniendo estas fechas guardadas:

fecha
-------
2012-12-21
2012-12-24
2012-12-27
2012-12-29
2012-12-31
OJO! que la column fecha debe ser de tipo DATE
Con esta opcion:

SELECT *
FROM table
WHERE (fecha, fecha)
OVERLAPS('2012-12-01'::DATE, '2012-12-31'::DATE)
ORDER BY fecha ASC


PostgreSQL devolvera estas filas:
fecha
-------
2012-12-21
2012-12-24
2012-12-27
2012-12-29

Como podras ver no devueve la fila que contiene la fecha 2012-12-31

Pero usando esta opcion consigues todas la filas:

SELECT *
FROM table
WHERE fecha >= '2012-12-01'::DATE
AND fecha <= '2012-12-31'::DATE
ORDER BY fecha ASC



Publicado en tttony.blogspot.com

No comments:

Post a Comment