PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como justify_days() funciona no PostgreSQL


No PostgreSQL, o justify_days() função permite ajustar um intervalo valor, para que os períodos de 30 dias sejam representados como meses.

Por exemplo, se você tiver um intervalo de, digamos, 30 dias , justify_days() irá devolvê-lo como 1 seg .

Sintaxe


A função tem a seguinte sintaxe:
justify_days(interval)

Onde interval é o intervalo que você deseja representar em meses.

Exemplo


Aqui está um exemplo básico para demonstrar.
SELECT justify_days(interval '30 days');

Resultado:
1 mon

Meses Parciais


Aqui está um exemplo do que acontece quando seu intervalo não é um múltiplo exato de 30 dias.
\x
SELECT 
  justify_days(interval '31 days'),
  justify_days(interval '45 days'),
  justify_days(interval '290 days');

Resultado (usando saída vertical):
justify_days | 1 mon 1 day
justify_days | 1 mon 15 days
justify_days | 9 mons 20 days

Neste exemplo eu usei \x para alternar para a exibição expandida, que exibe os resultados usando a saída vertical. Isso facilita um pouco a leitura dos resultados.

Menos de um mês


Se o intervalo for inferior a 30 dias, ele permanecerá em dias.
SELECT justify_days(interval '29 days');

Resultado (usando saída vertical):
29 days

Incluindo Minutos


Neste exemplo, o intervalo inclui uma parte de minutos.
SELECT justify_days(interval '40 days 30 minutes');

Resultado (usando saída vertical):
1 mon 10 days 00:30:00

Portanto, neste caso, acabamos com um valor de tempo sendo anexado ao resultado.