Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

180
Vistas
Creando la función de intervalo de N días en postgresql

Estoy tratando de crear una función en postgresql que devuelva un conjunto de fechas entre dos fechas con un cierto intervalo. Por ejemplo, si paso estos dos parámetros de fecha como most_recent_day = 2020-01-10 y mininum_day = 2020-01-01 y este parámetro de intervalo n_day_group_interval = 5 , la función devolverá el siguiente conjunto:

 2020-01-10 2020-01-08 2020-01-06 2020-01-04 2020-01-02

El siguiente fue mi intento que da un syntax error at or near "end" . Gracias por tu ayuda.

 create function get_n_day_group_dates(most_recent_day date, minimum_day date, n_day_group_interval varchar) returns table ( n_day_group_dates date ) as $body$ begin return query SELECT date_trunc('day'::text, dd.dd)::date AS n_day_group_dates FROM LATERAL generate_series(most_recent_day, minimum_day, '-'||n_day_group_interval||' day'::interval) dd(dd) end; $body$ language plpgsql;
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Estás complicando demasiado las cosas. No se requiere LATERAL y date_trunc('day', ..) es lo mismo que lanzar hasta la date .

Para crear un intervalo basado en una variable, la forma más fácil es usar make_interval()

 create function get_n_day_group_dates(most_recent_day date, minimum_day date, n_day_group_interval varchar) returns table (n_day_group_dates date) as $body$ SELECT g.dt::date FROM generate_series(most_recent_day, minimum_day, make_interval(days => n_day_group_interval) as g(dt); $body$ language sql;
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda