sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo Justify_interval() funciona en PostgreSQL

En PostgreSQL, el justify_interval() la función ajusta un intervalo usando justify_daysjustify_hours . Le permite usar ajustes de signos adicionales para ajustar el intervalo.

Sintaxis

La función tiene la siguiente sintaxis:

justify_interval(interval)

Donde interval es el intervalo que desea ajustar.

Ejemplo

Aquí hay un ejemplo básico para demostrarlo.

SELECT justify_interval(interval '1 mon -3 hours');

Resultado:

29 days 21:00:00

Comparación con justificar_horas() y justificar_días()

Así es como se compara con justify_hours() y justify_days() cuando se usa el mismo argumento.

\x
SELECT 
  justify_interval(interval '1 mon -3 hours'),
  justify_hours(interval '1 mon -3 hours'),
  justify_days(interval '1 mon -3 hours');

Resultado (usando salida vertical):

justify_interval | 29 days 21:00:00
justify_hours    | 1 mon -03:00:00
justify_days     | 1 mon -03:00:00

En este ejemplo usé \x para cambiar a la visualización ampliada, que muestra los resultados utilizando una salida vertical.

A continuación hay algunas comparaciones más usando varios argumentos.

justificar_intervalo()

SELECT 
  justify_interval(interval '30 hours'),
  justify_interval(interval '300 hours'),
  justify_interval(interval '3000 hours'),
  justify_interval(interval '3.53 months'),
  justify_interval(interval '18 days'),
  justify_interval(interval '31 days'),
  justify_interval(interval '45 days'),
  justify_interval(interval '290 days');

Resultado (usando salida vertical):

justify_interval | 1 day 06:00:00
justify_interval | 12 days 12:00:00
justify_interval | 4 mons 5 days
justify_interval | 3 mons 15 days 21:36:00
justify_interval | 18 days
justify_interval | 1 mon 1 day
justify_interval | 1 mon 15 days
justify_interval | 9 mons 20 days

justificar_horas()

SELECT 
  justify_hours(interval '30 hours'),
  justify_hours(interval '300 hours'),
  justify_hours(interval '3000 hours'),
  justify_hours(interval '3.53 months'),
  justify_hours(interval '18 days'),
  justify_hours(interval '31 days'),
  justify_hours(interval '45 days'),
  justify_hours(interval '290 days');

Resultado (usando salida vertical):

justify_hours | 1 day 06:00:00
justify_hours | 12 days 12:00:00
justify_hours | 125 days
justify_hours | 3 mons 15 days 21:36:00
justify_hours | 18 days
justify_hours | 31 days
justify_hours | 45 days
justify_hours | 290 days

justificar_días()

SELECT 
  justify_days(interval '30 hours'),
  justify_days(interval '300 hours'),
  justify_days(interval '3000 hours'),
  justify_days(interval '3.53 months'),
  justify_days(interval '18 days'),
  justify_days(interval '31 days'),
  justify_days(interval '45 days'),
  justify_days(interval '290 days');

Resultado (usando salida vertical):

justify_days | 30:00:00
justify_days | 300:00:00
justify_days | 3000:00:00
justify_days | 3 mons 15 days 21:36:00
justify_days | 18 days
justify_days | 1 mon 1 day
justify_days | 1 mon 15 days
justify_days | 9 mons 20 days