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

Como definir o formato de saída de intervalo no PostgreSQL


Ao trabalhar com o intervalo tipo de dados no PostgreSQL, você pode alterar a forma como a saída do intervalo é formatada.

Você pode escolher entre quatro formatos nos quais seus intervalos podem ser reproduzidos.

O formato de saída do tipo de intervalo pode ser definido para um dos seguintes estilos:
  • sql_standard
  • postgres
  • postgres_verbose
  • iso_8601

O estilo padrão é postgres .

Para alterar o formato do intervalo, use o SET intervalstyle comando.

Exemplos


Os exemplos a seguir demonstram a saída de make_interval() ao usar os diferentes estilos de saída.

sql_standard


Esse estilo está em conformidade com a especificação do padrão SQL para strings literais de intervalo, se o valor do intervalo atender às restrições do padrão (somente ano-mês ou apenas dia, sem mistura de componentes positivos e negativos).

Caso contrário, a saída se parece com uma string literal padrão ano-mês seguida por uma string literal de dia, com sinais explícitos adicionados para desambiguar intervalos de sinais mistos.

Aqui está um exemplo usando o ano-mês.
SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);

Resultado:
1-2

Abaixo está outro exemplo. Desta vez eu especifico anos, meses, semanas, dias, horas, minutos e segundos.
SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

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

postgres


postgress é a configuração padrão.

Este estilo corresponde à saída de versões do Postgres anteriores a 8.4 quando o DateStyle parâmetro foi definido como 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 corresponde à saída de versões do Postgres anteriores a 8.4 quando o DateStyle parâmetro foi definido como não-ISO saída.
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 corresponde ao “formato com designadores” descrito na seção 4.4.3.2 do padrão ISO 8601.
SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultado:
P1Y2M25DT5H6M7S