quinta-feira, 14 de janeiro de 2021

ORACLE - Listar meses com data inicial e final de cada mês

Segue queries para gerar lista de meses com data inicial e final de cada mês:


SELECT
TO_CHAR(TRUNC (ANOBASE, 'YEAR'), 'YYYY') ANO,
TO_CHAR(LEVEL, '00') MES,
((SELECT ADD_MONTHS (TRUNC (ANOBASE, 'YEAR'), -1) FROM DUAL) + numtoyminterval(level,'month')) as DTINI, 
LAST_DAY ((SELECT ADD_MONTHS (TRUNC (ANOBASE, 'YEAR'), -1) FROM DUAL) + numtoyminterval(level,'month')) as DTFIN 
from (SELECT TO_DATE('01/01/2022') ANOBASE from dual)
connect by level <= 12


Exemplo de saída:






Depois disso basta dar um join em outra tabela que desejar e usar as datas geradas para subconsultas.




Postgres no docker

 -- Criar compose nano docker-compose.yml version: '3.7' ### services:   db:     image: postgres     volumes:       - postgres_data:...