tablas postgres libros introduccion espaƱol ejemplos consultar consulta conclusiones sql postgresql date split range

libros - postgresql introduccion



Dividir un intervalo en semanas en Postgres (2)

En primer lugar, sería bueno mostrar algunos ejemplos de entrada y salida de la consulta con la que desea que lo ayudemos. Por ejemplo, yo realmente no obtengo lo que necesita.

Además, es posible que encuentre OVERLAPS como subóptimo, ya que no es indexable. En su lugar, es posible que desee utilizar el método que describí en esta publicación de blog .

Aquí hay una pregunta SQL más sobre las fechas ...

Estoy construyendo una aplicación de calendario usando PHP y Postgres que mostraría eventos que abarcan días, semanas o posiblemente meses. Cada evento tiene una fecha de inicio y una fecha de finalización, y seleccionarlos por rango no es un problema; sin embargo, me sería útil si Postgres pudiera dividir eventos de varias semanas el primer día de cada semana. Me han dicho que se puede hacer usando GROUP BY y EXTRACT , pero no soy lo suficientemente bueno con SQL para entender cómo.

La pregunta es: ¿se puede hacer esto y cómo sería la consulta precisa? Actualmente estoy usando SELECT * FROM events WHERE (range) OVERLAPS (range) ; y luego hacer la división en PHP, pero claramente no es óptimo.


Puede usar la función de Postgres generate_series . En 8.3 y anteriores, haz cosas como

select current_date + s.a as dates from generate_series(0,14,7) as s(a);

En 8.4, también puedes hacer

SELECT * FROM generate_series(''2008-03-01 00:00''::timestamp, ''2008-03-04 12:00'', ''10 hours'');