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 :
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:
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:
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:
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
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:
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:
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:
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:
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:
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:
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:
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 :
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:
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.