3 Funções de Data no SQL – Funções Úteis para o Trabalho

Aprenda três funções de data no SQL muito úteis para o trabalho e operações com data!

As três principais funções de data no SQL são datediff, date_add e date_sub. O datediff(data1, data2) retorna a diferença em dias entre duas datas; o date_add(data, INTERVAL valor unidade) soma um intervalo a uma data; e o date_sub(data, INTERVAL valor unidade) subtrai. Elas evitam erros ao calcular datas diretamente.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: As funções de data do MySQL evitam cálculos manuais frágeis. DATEDIFF(data1, data2) devolve a diferença em dias; DATE_ADD(data, INTERVAL valor unidade) acrescenta dias, meses ou anos; e DATE_SUB(data, INTERVAL valor unidade) subtrai. A aula combina DATEDIFF com CURDATE() e FLOOR() em um exemplo simplificado de idade.

Neste vídeo (11 min):

  • 1:22 - Visão geral de DATEDIFF, DATE_ADD e DATE_SUB
  • 1:36 - Cálculo da diferença em dias entre duas datas
  • 2:46 - Uso de CURDATE() com a data de nascimento
  • 3:20 - Conversão simplificada da diferença de dias para anos
  • 4:40 - Arredondamento da idade para baixo com FLOOR()
  • 5:01 - Diferença de finalidade entre DATE_ADD e DATE_SUB
  • 5:44 - Adição de dez dias com DATE_ADD e INTERVAL
  • 6:59 - Troca da unidade do intervalo para meses ou anos
  • 7:57 - Subtração de cinco dias com DATE_SUB
  • 9:00 - Por que usar funções próprias ao manipular tipos de data

Trechos do vídeo:

  • DATEDIFF retorna dias, então qualquer conversão posterior precisa respeitar a precisão desejada.
  • Com INTERVAL, a unidade fica explícita e pode ser dia, mês ou ano.
  • Funções de data lidam melhor com diferenças entre os tipos DATE e DATETIME.

3 Funções de Data no SQL – Funções Úteis para o Trabalho

Na aula de hoje, eu quero te mostrar três funções de data no SQL muito úteis! Essas funções são importantes porque, ao realizar operações com datas, é recomendado utilizar as funções próprias para essa finalidade.

Dessa forma, você evita alguns erros e até problemas como utilizar diferentes tipos de dados para fazer as operações entre datas.

Por isso, nesta aula, vou te apresentar as funções datediff, date_add e date_sub no SQL, para que você possa fazer seus cálculos com datas de forma correta!

Então, vem comigo que eu vou te mostrar com exemplos cada uma dessas funções.

Funções de Datas no SQL

Funções de texto, números e datas são muito úteis e comumente utilizadas não só em bancos de dados, mas também em qualquer linguagem de programação ou ferramenta de tratamento de dados.

Com SQL, isso não é diferente, e por isso trouxe estas três funções de data que são muito importantes para você conhecer e bastante tranquilas de entender.

Ícone SQLSQL Impressionador

Domine a linguagem mais importante do Mundo para quem trabalha com Dados, seja para se destacar na sua empresa atual, para conseguir um diferencial em processos seletivos ou até mesmo para entrar em áreas de dados.

Começar agoraSeta para a direita
Fundo SQLTelas SQL
Luz SQL

Função datediff no SQL

Vamos começar pela função datediff no SQL. Essa função calcula a diferença entre duas datas, retornando o resultado em dias. Você só precisa passar as duas datas que deseja calcular a diferença: datediff(data1, data2).

Como exemplo, vamos calcular a idade dos clientes da nossa base de dados. Para isso, vamos calcular a diferença entre a data de nascimento presente na tabela e a data atual (obtida através da função curdate). Isso trará o resultado em dias.

Para obter a idade em anos, vamos dividir esse resultado por 365. E para arredondar e ter os anos em números inteiros, vamos utilizar a função floor, que arredonda os valores para baixo.

SQL
SELECT
    Nome,
    floor(datediff(curdate(), Data_Nascimento)/365) AS Idade
FROM clientes;

Idade

É claro que esse resultado não será 100% preciso, pois não estamos considerando os anos bissextos, porém é apenas uma forma de exemplificar a aplicação da função datediff.

Função date_add no SQL

A função date_add é utilizada para adicionar um intervalo de tempo a uma data.

date_add(data, intervalo valor unidade)

Vamos, por exemplo, adicionar 10 dias à data de nascimento dos clientes do nosso banco de dados.

SQL
SELECT
    Nome,
    Data_Nascimento,
    date_add(Data_Nascimento, interval 10 day)
FROM clientes;

Função date_add

Nesse exemplo, estamos adicionando dez dias, mas poderiam ser meses, anos, semanas, dependendo de qual unidade você definisse para o intervalo adicionado.

Função date_sub no SQL

Já a função date_sub faz exatamente o contrário da date_add. Ao invés de adicionar um intervalo de tempo, ela subtrai um intervalo de tempo de uma data.

date_sub(data, intervalo valor unidade)

Vamos, por exemplo, subtrair 5 dias da data de nascimento dos clientes.

SQL
SELECT
    Nome,
    Data_Nascimento,
    date_sub(Data_Nascimento, interval 10 day)
FROM clientes;

Função date_sub

O mesmo poderíamos fazer para meses, semanas ou anos.

Recomendações sobre Manipulação de Datas

É recomendado utilizarmos essas funções ao invés de fazer o cálculo direto entre uma data e outra, como adicionar data1 + data2 ou subtrair data1 – data2. Dessa forma, evitamos problemas ao lidar com diferentes tipos de dados.

Dentro do SQL, temos dados do tipo Date e do tipo Datetime, e realizar os cálculos diretamente entre as datas pode gerar algum erro ou resultado inesperado. Já com o uso das funções específicas, isso não ocorre.

Perguntas frequentes

1. Como calcular a diferença entre duas datas no SQL?

Use a função datediff, que retorna a diferença em dias entre duas datas: datediff(data_maior, data_menor). Por exemplo, para calcular a idade a partir da data de nascimento, use floor(datediff(curdate(), Data_Nascimento)/365), dividindo por 365 e arredondando com floor para obter os anos completos.

2. Como adicionar dias, meses ou anos a uma data no SQL?

Use a função date_add com a palavra-chave INTERVAL: date_add(data, INTERVAL valor unidade). Por exemplo, date_add(Data_Nascimento, INTERVAL 10 day) soma 10 dias à data. Basta trocar a unidade por month, year ou week para somar meses, anos ou semanas, alterando também o valor desejado.

3. Qual a diferença entre date_add e date_sub no SQL?

As duas funções são opostas. O date_add soma um intervalo de tempo a uma data, avançando no calendário; o date_sub subtrai um intervalo, retrocedendo. A sintaxe é igual: date_sub(data, INTERVAL valor unidade). Por exemplo, date_sub(Data_Nascimento, INTERVAL 5 day) retorna a data cinco dias antes da informada.

4. Por que usar funções de data em vez de somar datas diretamente?

Porque somar ou subtrair datas diretamente (data1 + data2) pode gerar erros ou resultados inesperados, já que o SQL trabalha com tipos diferentes como Date e Datetime. As funções específicas tratam esses tipos corretamente, garantindo cálculos precisos ao adicionar, subtrair ou medir intervalos entre datas.

Conclusão – 3 Funções de Data no SQL – Funções Úteis para o Trabalho

Nessa aula, você aprendeu como utilizar funções de data no SQL, ferramentas muito úteis para o trabalho e para manipular datas no SQL.

Com essas funções, você poderá adicionar e subtrair intervalos de datas em suas tabelas, além de calcular a diferença entre duas datas, de forma prática e correta, evitando erros e resultados inesperados.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?