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;