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

Cómo establecer el formato de salida de intervalo en PostgreSQL

Cuando se trabaja con el intervalo tipo de datos en PostgreSQL, puede cambiar la forma en que se formatea la salida del intervalo.

Puede elegir entre cuatro formatos en los que se pueden generar los intervalos.

El formato de salida del tipo de intervalo se puede establecer en uno de los siguientes estilos:

  • sql_standard
  • postgres
  • postgres_verbose
  • iso_8601

El estilo predeterminado es postgres .

Para cambiar el formato de su intervalo, use el SET intervalstyle dominio.

Ejemplos

Los siguientes ejemplos demuestran la salida de make_interval() al usar los diferentes estilos de salida.

sql_estándar

Este estilo se ajusta a la especificación del estándar SQL para cadenas de literales de intervalo, si el valor del intervalo cumple con las restricciones del estándar (ya sea solo año-mes o solo día, sin mezclar componentes positivos y negativos).

De lo contrario, la salida parece una cadena literal de año-mes estándar seguida de una cadena literal de día, con signos explícitos agregados para eliminar la ambigüedad de los intervalos de signos mixtos.

Aquí hay un ejemplo usando el año-mes.

SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);

Resultado:

1-2

A continuación se muestra otro ejemplo. Esta vez especifico años, meses, semanas, días, horas, minutos y segundos.

SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultado:

+1-2 +25 +5:06:07

postgres

postgress es la configuración predeterminada.

Este estilo coincide con la salida de las versiones de Postgres anteriores a la 8.4 cuando DateStyle el parámetro se estableció en ISO .

SET intervalstyle = 'postgres';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultado:

1 year 2 mons 25 days 05:06:07

postgres_verbose

Este estilo coincide con la salida de las versiones de Postgres anteriores a la 8.4 cuando DateStyle el parámetro se estableció en no ISO salida.

SET intervalstyle = 'postgres_verbose';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultado:

@ 1 year 2 mons 25 days 5 hours 6 mins 7 secs

iso_8601

Este estilo coincide con el "formato con designadores" descrito en la sección 4.4.3.2 de la norma ISO 8601.

SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultado:

P1Y2M25DT5H6M7S