Administração do sistema

Como trabalhar com datas em expressões PostgreSQL?

RT.FAQ-142212

Último dia do mês corrente:

SELECT (date_trunc('month', current_date)
        + interval '1 month' 
        - interval '1 day')::date

Dia primeiro do próximo mês:

SELECT (date_trunc('month', current_date)
        + interval '1 month')::date

Dia 15 do próximo mês:

SELECT (date_trunc('month', current_date)
        + interval '1 month' 
        + interval '14 day')::date

Primeira sexta-feira após um dia:

O target informado abaixo deverá ser:
0 - Domingo
1 - Segunda
2 - Terça
3 - Quarta
4 - Quinta
5 - Sexta
6 - Sábado

select *
, day 
  + (case when target >= dow then target - dow 
          else target + 7 - dow
     end || ' day') :: interval
from (
    select day
    , extract('dow' from day) as dow
    , target
    from (
       select '2021-03-06'::date as day
       , 5 as target
    ) q
) as q;