From: | Daniel Hernández <daniel(at)scio(dot)cl> |
---|---|
To: | Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: consultas por fechas |
Date: | 2009-08-17 16:50:00 |
Message-ID: | 20090817165000.GA28390@maullin |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> puedes crear la fecha al momento de la consulta:
>
> select * from pagos where (agno_pago||'-'||mes_pago||'-01')::date >=
> '2007-07-01';
Pero entonces dejarás de usar posibles índices en los campos de mes año. Me
parece mejor la solución de:
SELECT * FROM pagos
WHERE (agno_pago = 2007 AND mes >= 7)
OR (agno_pago > 2007);
Lo de las fechas tiene muchas soluciones según gustos. A algunos le gusta
descomponerlas en campos integer y manipularlos por separado con un índice por
cada campo. A otros, les gusta usar campos date y si requieren valores
agrupados por mes, entonces crean un índice funcional para el mes, cosa de no
perder eficiencia en las consultas (a mi la solución de los índices
funcionales me agrada). ¿Conocen algún estudio que discuta este tema?
Generalmente las tablas que usan fecha registran hechos, por lo que suelen
crecer bastante y requieren ser indexadas astutamente. Por allí se llega al
tema de los modelos de datos para consultas como los estrella o los copos de
nieve, donde a veces usan una tabla de fechas. También se llega al asunto de
si disponer usar tablas con orientación a filas o a columnas... aunque ahí se
escapa un poco de Postgres, porque hasta donde se, no soporta orientación de
columnas.
Saludos,
From | Date | Subject | |
---|---|---|---|
Next Message | Sergio Valdes Hurtado | 2009-08-17 16:51:21 | Re: consultas por fechas |
Previous Message | Javier Chávez B. | 2009-08-17 16:48:55 | Re: consultas por fechas |