Cálcular Qtd meses em um período
Boa tarde a todos.
Hoje tive um problema que creio será de interesse de todos.
Precisei verificar quantos meses existiam em um intervalo de datas, não importando o dia que era informado em ambas datas.
Pesquisando encontrei o comando months_between que faz esse cálculo, o que seria o mais indicado para isso, mas ele sozinho não resolveu meu problema.
No caso imaginem se o usuário informar a data inicial 31/12/2007 e 01/01/2008 e em outra pesquisa ele informar 01/01/2008 e 31/01/2008, o resultado do months_between arredondando seria "1" nas duas pesquisas, só que na verdade na primeira que envolve um intervalo de dias entre um mês e outro não seria satisfatório.
Cheguei a seguinte solução consultando um de meus colegas de trabalho.
Na primeira pesquisa o resultado teria que ser "2" e na outra "1":
Resolvendo o problema:
round( months_between(last_day(p_data_final),trunc(p_data_inicial,'MM') ) );
esse script irá retornar quantos meses foram inseridos no período.
Espero ter ajudado!
T+
Discussão (1)
Carregando comentários...