Função MONTHS_BETWEEN
MONTHS_BETWEEN determina o número de meses entre duas datas.
Se a primeira data for mais recente do que a segunda, o resultado será positivo; caso contrário, o resultado será negativo.
Se um dos argumentos for nulo o resultado será NULL.
Sintaxe
MONTHS_BETWEEN( date1, date2 )
Argumentos
- date1
-
Uma coluna de tipo de dados
DATE
ou uma expressão que é avaliada implicitamente como um tipoDATE
. - date2
-
Uma coluna de tipo de dados
DATE
ou uma expressão que é avaliada implicitamente como um tipoDATE
.
Tipo de retorno
FLOAT8
A porção inteira do número do resultado é baseada na diferença entre os valores de ano e de mês das datas. A parte fracionária do resultado é calculada a partir dos valores de dia e timestamp das datas e presume um mês de 31 dias.
Se date1 e date2 contêm a mesma data em um mês (por exemplo, 1/15/14 e 2/15/14) ou o último dia do mês (por exemplo, 8/31/14 e 9/30/14), o resultado é um número inteiro baseado nos valores de ano e mês das datas, independente de correspondência na porção do timestamp, se houver.
Exemplos
O exemplo a seguir retorna os meses entre 18/1/1969 e 18/3/1969.
select months_between('1969-01-18', '1969-03-18') as months;
months ---------- -2
O exemplo a seguir retorna os meses entre 18/1/1969 e 18/1/1969.
select months_between('1969-01-18', '1969-01-18') as months;
months ---------- 0
O exemplo a seguir retorna os meses entre a primeira e a última exibição de um evento.
select eventname, min(starttime) as first_show, max(starttime) as last_show, months_between(max(starttime),min(starttime)) as month_diff from event group by eventname order by eventname limit 5;
eventname first_show last_show month_diff --------------------------------------------------------------------------- .38 Special 2008-01-21 19:30:00.0 2008-12-25 15:00:00.0 11.12 3 Doors Down 2008-01-03 15:00:00.0 2008-12-01 19:30:00.0 10.94 70s Soul Jam 2008-01-16 19:30:00.0 2008-12-07 14:00:00.0 10.7 A Bronx Tale 2008-01-21 19:00:00.0 2008-12-15 15:00:00.0 10.8 A Catered Affair 2008-01-08 19:30:00.0 2008-12-19 19:00:00.0 11.35