Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

Aritmética DATE do PostgreSQL (-)

As funções aritméticas DATE do PostgreSQL permitem que você faça cálculos com valores de data, como encontrar a diferença entre duas datas. Essa funcionalidade é essencial para a análise de intervalos de tempo, agendamento e relatórios baseados em tempo.

Uso

A função aritmética DATE é usada quando você precisa calcular a diferença entre duas datas ou subtrair um intervalo de uma data. Quando duas datas são subtraídas, o resultado é um intervalo, especificamente em dias. Essa operação é usada com frequência em cenários como cálculo de idade, duração ou agendamento de tarefas.

SELECT date1 - date2 AS interval_result;

Nessa sintaxe, date1 e date2 são valores de data, e a operação de subtração - calcula o intervalo entre eles.

Exemplos

1. Subtração básica de datas

SELECT '2023-10-10'::date - '2023-10-01'::date AS days_difference;

Esse exemplo calcula o número de dias entre 10 de outubro de 2023 e 1º de outubro de 2023, resultando em uma diferença de 9 dias.

2. Subtração de um intervalo

SELECT '2023-10-10'::date - INTERVAL '3 days' AS new_date;

Aqui, a operação subtrai 3 dias de 10 de outubro de 2023, resultando em uma nova data de 7 de outubro de 2023.

3. Cálculo da idade a partir da data de nascimento

SELECT CURRENT_DATE - birth_date AS age_in_days FROM users;

Este exemplo calcula a idade em dias de cada usuário na tabela users, subtraindo birth_date da data atual.

Dicas e práticas recomendadas

  • Garanta que os tipos de dados estejam corretos. Sempre converta as strings para o tipo date explicitamente usando ::date para obter cálculos precisos.
  • Entenda os intervalos. Um intervalo representa um período de tempo e pode ser usado para subtrair durações específicas, como dias, meses ou anos, para garantir clareza e facilidade de manutenção.
  • Opte por CURRENT_DATE. Utilize CURRENT_DATE para cálculos que envolvam a data atual para garantir que suas consultas sejam dinâmicas e atualizadas.
  • Conheça seus tipos de dados. Esteja ciente das diferenças entre date, timestamp e timestamp with time zone para evitar confusão, pois somente timestamp with time zone leva em conta os fusos horários.