logo

Intervalo PostgreSQL

Nesta seção, vamos entender o funcionamento do Tipo de dados de intervalo PostgreSQL, e também vemos exemplos do Tipo de dados de intervalo. E intervalo usado principalmente funções , por exemplo, AGORA(), TO_CHAR(), EXTRACT(), justificar_dias(), justificar_horas(), justificar_interval(). O Entrada e saída formato para valores de intervalo do PostgreSQL.

O que é o tipo de dados de intervalo PostgreSQL?

No PostgreSQL, o Intervalo é outro tipo de dados usado para armazenar e implantar o tempo em anos, meses, dias, horas, minutos, segundos, etc. E o meses e dias os valores são valores inteiros , Considerando que a campo do segundo pode ser o valores de frações.

O valor do tipo de dados do intervalo PostgreSQL envolve Armazenamento de 16 bytes tamanho, o que ajuda a armazenar um período com faixa aceitável de - 178000000 anos a 178000000 anos.

como retornar um array java

Nota: O número de dígitos fracionários obtidos no segundo campo é conhecido como precisão p.

Sintaxe do tipo de dados do intervalo PostgreSQL

A sintaxe do tipo de dados do intervalo PostgreSQL é a seguinte:

 @ interval [ fields ] [ (p) ] 

Na sintaxe acima, temos os seguintes parâmetros:

Parâmetro Descrição
Campos O parâmetro campo é usado para mostrar o Tempo.
p P é usado para exibir o valor de precisão.
@ Podemos ignorar o parâmetro @ porque é um parâmetro opcional.

Vejamos um exemplo para melhor entender como podemos escrever os valores do intervalo com @ parâmetro e sem @ parâmetro :

 @interval '6 months before'; @interval '2 hours 30 minutes'; 

OU

 interval '6 months before'; interval '2 hours 30 minutes'; 

Nota: Podemos usar ambas as afirmações acima, pois elas correspondem entre si. Além disso, um valor de intervalo pode ter um valor de precisão eletivo p com o intervalo permitido começando de 0 a 6.

Exemplo de tipo de dados de intervalo PostgreSQL

Vejamos alguns exemplos para entender como o Tipo de dados de intervalo PostgreSQL funciona.

No exemplo abaixo, tentaremos encontrar o tempo de 2 horas e 30 minutos antes, no hora atual do ano passado ; usaremos os seguintes comandos:

 SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year'; 

Saída

Após executar o comando acima, obteremos a saída abaixo, que exibe 2 horas e 30 minutos antes do ano passado :

Intervalo PostgreSQL

Vimos o exemplo principal do tipo de dados de intervalo e entendemos seu funcionamento. Agora, veremos o formato de entrada e saída de valores de intervalo.

Primeiramente, entenderemos o Valor do intervalo PostgreSQL para o formato de entrada :

Formato de entrada de intervalo PostgreSQL

No PostgreSQL, temos o seguinte sintaxe detalhada, o que nos ajuda a escrever os valores do intervalo:

 quantity unit [quantity unit...] [direction] 

Temos os parâmetros abaixo, que são usados ​​na sintaxe acima:

Parâmetro Descrição
quantidade A quantidade é um número, que também aceita sinais como + ou -
unidade O unidade pode ser qualquer milênio, século, década, ano, mês, semana, dia, hora, minuto, segundo, milissegundo, microssegundo, ou abreviatura pode ser a seguinte y, m, d, etc. e as formas plurais podem ser as meses, dias , etc.
direção O direção parâmetro pode ser atrás ou a string vazia.

Nota: A sintaxe acima também é usada para o formato de saída de intervalo e é conhecida como postgres_verbose.

No exemplo abaixo, exibiremos alguns valores de intervalo onde usamos o sintaxe detalhada :

 INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago'; 

O formato de intervalo ISO 8601

Além da sintaxe detalhada acima, para escrever os valores dos intervalos com a ajuda de Tempo ISO 8601 intervalos, o PostgreSQL nos fornece duas maneiras, que são as seguintes:

    Formato dos designadores Formato alternativo

O formato dos designadores para ISO 8601 é o seguinte:

 P quantity unit [ quantity unit ...] [ T [ quantity unit ...]] 

No formato acima, o valor do intervalo essencial começa com o letra P , e a letra T é usado para definir o unidade de hora do dia .

A tabela abaixo exibe o Intervalo ISO 8601 abreviaturas de unidades:

Abreviação Descrição
E Anos
M Meses (para a parte da data)
EM Semanas
D Dias
H Horas
M Minutos (para a parte do tempo)
S Segundos

Nota: O M pode ser meses ou minutos dependendo se aparece antes ou depois da letra T.

Vejamos um exemplo de Designadores ISO 8601 formato para nosso melhor entendimento:

O Formato dos designadores ISO 8601 pode ser escrito para o intervalo de 5 anos 4 meses 3 dias 2 horas 1 minuto 1 segundo :

 P5Y4M3DT2H1M1S 

E a forma alternativa de ISO 8601 é como mostrado abaixo:

 P [ years-months-days ] [ T hours:minutes:seconds ] 

E também começa com o letra P e a letra T, que divide o hora e data partes do valor do intervalo.

Por exemplo, o Formulário alternativo ISO 8601 pode ser escrito para 5 anos 4 meses 3 dias 2 horas 1 minuto 1 segundo, como mostrado abaixo:

 P0005-04-03T02:01:01 

Formato de saída de intervalo PostgreSQL

O formato de saída de intervalo do PostgreSQL de valores de intervalo pode ser definido com a ajuda do DEFINIR estilo intervalado comando, como podemos ver no exemplo abaixo:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL contém quatro formatos de saída diferentes, como:

    iso_8601 postgres_verbose Postgres padrão SQL

Nota: Para formatar os valores de intervalo, o PostgreSQL usa o estilo Postgres por padrão.

Vejamos um exemplo de nossa melhor compreensão:

O comando abaixo é usado para exibir o 5 anos 4 meses 3 dias 2 horas 1 minuto 1 segundo nos quatro formatos de saída diferentes:

Para formato de saída ISO_8601

No comando abaixo, iremos DEFINIR o estilo intervalado como iso_8601 para o valor do intervalo mencionado acima:

 SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second'; 

Saída

Após executar o comando acima, obteremos o resultado abaixo, que representa o iso_8601 formato de saída de intervalo:

Intervalo PostgreSQL

Para formato de saída postgres_verbose

No comando abaixo, iremos DEFINIR o estilo intervalado como postgres_verbose para o valor do intervalo mencionado acima:

 SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Saída

Obteremos o resultado abaixo após implementar o comando acima, que mostra o postgres_verbose formato de saída de intervalo:

executando scripts no linux
Intervalo PostgreSQL

Para formato de saída Postgres

No comando abaixo, iremos DEFINIR o estilo intervalado como Postgres para o valor do intervalo mencionado acima:

 SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Saída

Obteremos o resultado abaixo após executar com sucesso o comando acima, que mostra o Postgres formato de saída de intervalo:

Intervalo PostgreSQL

Para formato de saída SQL_standard

No comando abaixo, iremos DEFINIR o estilo intervalado como sql_standard para o valor do intervalo mencionado acima:

 SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Saída

Obteremos o resultado abaixo após executar com sucesso o comando acima, que representa o sql_standard formato de saída de intervalo:

Intervalo PostgreSQL

Modificando o intervalo do PostgreSQL para string

Podemos usar o TO_CHAR() função para modificar um valor de intervalo para uma string.

A sintaxe para modificar o intervalo do PostgreSQL para string

 TO_CHAR(interval,format) 

O Função TO_CHAR() leva o primeira declaração como um valor de intervalo e outro como o formatar e recupera uma string, exibindo o intervalo no formato específico.

No exemplo abaixo, usaremos a função TO_CHAR(), que converte o intervalo PostgreSQL no valor da string:

 SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' ); 

Saída

Após executar com sucesso o comando acima, obteremos o resultado abaixo:

Intervalo PostgreSQL

Operadores e funções relacionadas ao intervalo PostgreSQL

Operadores de intervalo

Podemos usar o seguinte +, -, *, etc. operador aritmético para obter os valores do intervalo.

Vejamos o exemplo abaixo para nosso melhor entendimento:

No comando a seguir, usaremos o operador aritmético (+) com a ajuda do tipo de dados de intervalo PostgreSQL:

 SELECT INTERVAL '1h 50m' + INTERVAL '5m'; 

Saída

Obteremos o resultado abaixo ao implementar o comando acima, conforme mostrado abaixo:

Intervalo PostgreSQL

No comando a seguir, usaremos o operador aritmético (-) com a ajuda do tipo de dados de intervalo PostgreSQL:

 SELECT INTERVAL '3h 50m' - INTERVAL '30m'; 

Saída

dialeto de hibernação

Ao implementar o comando acima, obteremos o resultado abaixo:

Intervalo PostgreSQL

No comando a seguir, usaremos o operador aritmético (*) com a ajuda do tipo de dados de intervalo PostgreSQL:

 SELECT 400 * INTERVAL '5 minute'; 

Saída

Ao implementar o comando acima, obteremos o resultado abaixo:

Intervalo PostgreSQL

Extraindo dados de um intervalo PostgreSQL

Podemos usar o EXTRAIR() função para extrair os campos de um valor de intervalo, por exemplo, ano, mês, data, etc. .

A sintaxe para extrair dados de um intervalo PostgreSQL

 EXTRACT(field FROM interval) 

Na sintaxe acima, podemos usar o ano, mês, data, hora, minutos , etc., no parâmetro de campo.

O extrair A função retorna um valor do tipo precisão dupla se quisermos extrair do intervalo.

No exemplo a seguir usaremos o EXTRAIR() função para recuperar o valor de precisão dupla.

 SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' ); 

Saída

Depois de executar com sucesso o comando acima, obteremos a saída abaixo, que exibe o parte de data para precisão dupla valores conforme mostrado abaixo:

Intervalo PostgreSQL

Ajustando valores de intervalo do PostgreSQL

Temos duas funções, justificar_dias e justificar_horas no PostgreSQL, o que nos permite modificar o intervalo de 24 horas considere como um dia e o intervalo de 30 dias considere como um mês .

Vejamos um exemplo para entender como estamos ajustando os valores do intervalo do PostgreSQL:

No comando a seguir, usaremos o Função justificar_dias e justificar_horas:

 SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours'); 

Saída

Após executar o comando acima, obteremos o seguinte resultado, que exibe o intervalo de 30 dias como um mês e a intervalo de 24 horas como um dia :

Intervalo PostgreSQL

Além disso, o justificar_intervalo função regula os valores do intervalo com a ajuda de justificar_dias e justificar_horas com modificações de sinal adicionadas:

No exemplo a seguir, usaremos a função justifiy_interval com o comando SELECT:

 SELECT justify_interval(interval '6 months -1 hour'); 

Saída

Obteremos a seguinte saída após implementar o comando acima:

Intervalo PostgreSQL

Visão geral

No Tipo de dados de intervalo PostgreSQL seção, aprendemos os seguintes tópicos:

  • O Dados do intervalo PostgreSQL tipo é usado para armazenar e implantar um período em anos, meses, dias, horas, minutos, segundos.
  • Usamos diferentes Funções de intervalo , por exemplo, AGORA(), TO_CHAR(), para aprimorar os valores de intervalo da tabela específica.
  • Os valores de intervalo do PostgreSQL têm ambos entrada e saída formato de intervalo.
  • Podemos ajustar os valores do intervalo do PostgreSQL com a ajuda de Funções justificar_dias(), justificar_horas, justificar_interval().
  • Podemos usar o EXTRAIR() função para extrair os valores do campo de intervalo.