Intervalo PostgreSQL

Intervalo PostgreSQL
PostgreSQL é um sistema popular de gerenciamento de banco de dados relacional. É um software de código aberto que é popular por sua estabilidade e suporte para vários padrões técnicos abertos. É mantido ativamente pelos desenvolvedores de todo o mundo.

Neste guia, trabalharemos no intervalo no PostgreSQL.

Pré -requisitos:

Para executar as etapas demonstradas neste guia, você precisará dos seguintes componentes:

  • Um sistema Linux adequadamente configurado. Saiba mais sobre a instalação do Ubuntu no VirtualBox.
  • Uma instalação adequada do PostgreSQL. Saiba mais sobre a instalação do PostgreSQL no Ubuntu.

Intervalo no PostgreSQL

Para armazenar e gerenciar os períodos de tempo (minutos, segundos, anos, etc.), PostgreSQL oferece o tipo de dados de intervalo.

  • O tamanho do intervalo é de 16 bytes.
  • Ele pode armazenar valores de -178000000 a 178000000 anos.
  • Diferentes estilos de intervalo estão disponíveis, por exemplo, Postgres (padrão), PostGres_Verbose, SQL_STANDARD, ISO_8601, etc.
  • Operações aritméticas são possíveis.

O tipo de intervalo é o seguinte:

$ @ intervalo

Aqui:

  • É permitido que um valor de intervalo tenha um valor de precisão P, onde o valor de p pode variar de 0 a 6.
  • O sinal "@" é opcional, portanto pode ser omitido com segurança.

Formatos de intervalo

postgres_verbose
$

Onde:

  • Quantidade: um número que pode aceitar “+” ou “-“.
  • Unidade: Várias unidades de tempo são suportadas. Por exemplo: década, século, mês, dia, semana, hora, segundo e abreviações (d, m, y, etc.). As formas plurais também são suportadas (dias, meses, etc.).

Este é o formato PostGres_verbose que é comum para formatos de saída de intervalo.

ISO 8601

A estrutura do formato ISO 8601 com designadores é a seguinte:

$ PT

Aqui:

  • O valor começa com "P".
  • O valor após o "t" indica a hora do dia.

As abreviações da unidade a seguir estão disponíveis na ISO 8601:

  • Y: anos
  • M: meses (dentro da seção de data)
  • C: semanas
  • D: dias
  • H: horas
  • M: Minutos (dentro da seção de tempo)
  • S: segundos

Aqui está um exemplo de intervalo no formato ISO 8601 (com designadores):

$ P5Y4M3DT2H1M2S

Há um formato alternativo da ISO 8601. A estrutura é a seguinte:

$ PT

Aqui está o mesmo exemplo de intervalo no formato alternativo ISO 8601:

$ P0005-04-03T02: 01: 02

Usando os valores de intervalo

Nesta seção, demonstraremos as várias maneiras de usar os valores de intervalo nas consultas PostGresql.

Uso básico
A partir do shell postgreSQL, execute a seguinte consulta:

Selecione

Agora (), agora () - intervalo '1 ano 3 horas 20 minutos'
Como "3 horas há 20 minutos do ano passado";

Aqui:

  • A função agora () retorna a data e hora atuais.
  • Subtraímos “1 ano 3 horas 20 minutos” 'a partir de agora () para obter o valor desejado.
  • Usando a instrução AS, especificamos um nome para a segunda coluna da saída.

Formatos de saída de intervalo

No PostgreSQL, podemos especificar o formato de saída de um valor de intervalo usando o seguinte comando:

$ Set intervalestyle = '';

Existem alguns formatos disponíveis:

  • sql_standard
  • PostGres
  • postgres_verbose
  • ISO_8601

Vamos colocar este comando em ação. As consultas a seguir mostram a saída de intervalo em diferentes formatos:

Definir intervalestyle = 'sql_standard';
Selecione intervalo '5 anos 4 meses 3 dias 2 horas 1 minutos 2 segundo';
Definir intervalestyle = 'PostGres';
Selecione intervalo '5 anos 4 meses 3 dias 2 horas 1 minutos 2 segundo';
Definir intervalestyle = 'PostGres_verbose';
Selecione intervalo '5 anos 4 meses 3 dias 2 horas 1 minutos 2 segundo';
Definir intervalestyle = 'iso_8601';
Selecione intervalo '5 anos 4 meses 3 dias 2 horas 1 minutos 2 segundo';

Operadores aritméticos de intervalo

É possível aplicar as operações aritméticas (+, -, *) nos valores do intervalo. As consultas a seguir demonstram esse recurso:

Selecione

Intervalo '3h 50m' + intervalo '10m';

Selecione

Intervalo '9h 50m' - intervalo '50m';

Selecione

3600 * intervalo '1 minuto';

Intervalo de conversão para string

Com a ajuda da função to_char (), podemos converter o valor do intervalo para uma string. A estrutura de to_char () é a seguinte:

$ To_char (, );

Aqui:

  • O primeiro argumento é o valor do intervalo a ser transformado. Pode estar em qualquer formato de intervalo.
  • O segundo argumento descreve o formato da saída.

A consulta a seguir demonstra um exemplo simples de converter um intervalo no formato ISO 8601 em uma string simples:

Selecione
To_char (
Intervalo 'P0005-04-03T02: 01: 02',
'HH24: MI: SS'
);

Extração de dados do intervalo

Com a ajuda da função Extract (), podemos extrair o conteúdo de um campo específico de um valor de intervalo. A estrutura de comando do Extract () em conjunto com o intervalo é a seguinte:

$ Extrato ( DE );

Aqui:

  • campo: O campo a ser extraído do intervalo. Por exemplo: segundos, minutos, horas, data, mês, ano, etc.
  • intervalo: O valor do intervalo.

Vamos colocar a função Extract (). No exemplo a seguir, extraímos o campo minuto de um valor de intervalo:

Selecione

EXTRAIR (
MINUTO
DE
Intervalo 'P0005-04-03T02: 01: 02'

Ajuste do valor do intervalo

As funções justify_days () e justify_hours () podem converter os intervalos de 30 dias a 1 mês e 24 horas em 1 dia, respectivamente.

A consulta a seguir demonstra o uso dessas funções:

Selecione

justify_days (intervalo '90 dias '),
justify_hours (intervalo '72 horas ');

Conclusão

Exigimos o recurso de intervalo no PostgreSQL. Este guia elabora vários formatos de intervalo suportados. Ele também mostra as várias maneiras de implementar o intervalo em consultas. Finalmente, também exploramos as várias funções do PostgreSQL que traduzem/transformam o valor do intervalo nos formatos especificados.

Precisa interagir com o PostgreSQL em uma rede? Existem vários GUIs PostgreSql disponíveis que podem se conectar a um servidor remoto e gerenciá -lo sem esforço. Além das funções internas, o PostgreSQL também suporta as funções definidas pelo usuário.