Se você já precisou trabalhar com datas em SQL, provavelmente percebeu que pode ser um desafio manipular esse tipo de dado corretamente. Consultas que envolvem datas são essenciais para relatórios, filtros e cálculos, mas muitos iniciantes acabam cometendo erros ao lidar com elas.

Neste artigo, você aprenderá as principais funções de data no SQL e verá exemplos práticos para calcular prazos, filtrar registros e trabalhar com intervalos de tempo de maneira eficiente.

O que são Funções de Data no SQL?

As funções de data no SQL são usadas para obter, formatar, calcular e manipular datas e horas dentro das consultas. Cada banco de dados pode ter pequenas variações, mas os conceitos são os mesmos.

As funções mais comuns incluem:

  • Obter a data e hora atual
  • Formatar datas
  • Adicionar e subtrair períodos de tempo
  • Calcular diferenças entre datas
  • Filtrar registros por data

Vamos explorar cada uma delas com exemplos práticos.

1. Obtendo a Data e Hora Atual

A primeira coisa que um analista precisa saber é como obter a data e a hora atuais no banco de dados.

MySQL:

SELECT NOW();  -- Retorna a data e hora atuais
SELECT CURDATE();  -- Retorna a data atual sem horário
SELECT CURTIME();  -- Retorna apenas o horário atual

SQL Server:

SELECT GETDATE();  -- Retorna a data e hora atuais
SELECT SYSDATETIME();  -- Retorna a data e hora com precisão maior

Essas funções são úteis para registros automáticos, como datas de criação e atualização de registros.

2. Formatando Datas

Muitas vezes, as datas armazenadas no banco de dados precisam ser formatadas para exibição em relatórios.

MySQL:

SELECT DATE_FORMAT(NOW(), '%d/%m/%Y %H:%i:%s') AS DATA_FORMATADA;

Retorna: 17/03/2025 10:30:45

SQL Server:

SELECT FORMAT(GETDATE(), 'dd/MM/yyyy HH:mm:ss') AS DATA_FORMATADA;

Isso ajuda a apresentar datas no formato mais amigável para o usuário final.

3. Adicionando e Subtraindo Dias, Meses e Anos

Para cálculos como prazos e vencimentos, podemos somar ou subtrair datas.

MySQL:

SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);  -- Adiciona 7 dias à data atual
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);  -- Subtrai 1 mês da data atual

SQL Server:

SELECT DATEADD(DAY, 7, GETDATE());  -- Adiciona 7 dias
SELECT DATEADD(MONTH, -1, GETDATE());  -- Subtrai 1 mês

Se precisar calcular um vencimento para 30 dias após uma compra, por exemplo, basta usar DATE_ADD ou DATEADD.

4. Calculando Diferença Entre Datas

Calcular a diferença entre datas é fundamental para métricas como tempo de serviço, idade de um cliente ou tempo desde a última compra.

MySQL:

SELECT DATEDIFF(NOW(), '2024-03-01') AS DIAS_PASSADOS;

Retorna o número de dias entre a data atual e 1º de março de 2024.

SQL Server:

SELECT DATEDIFF(DAY, '2024-03-01', GETDATE()) AS DIAS_PASSADOS;

Se precisar calcular a idade de um cliente:

SELECT TIMESTAMPDIFF(YEAR, '1990-01-15', CURDATE()) AS IDADE;

Isso evita a necessidade de cálculos manuais e garante precisão.

5. Filtrando Registros Por Data

Filtros por data são comuns em relatórios e dashboards.

Buscar registros dos últimos 30 dias:

SELECT * FROM pedido WHERE DATA_PEDIDO >= DATE_SUB(NOW(), INTERVAL 30 DAY);

Buscar pedidos entre duas datas:

SELECT * FROM pedido WHERE DATA_PEDIDO BETWEEN '2024-03-01' AND '2024-03-15';

Isso é útil para relatórios financeiros, acompanhamento de vendas e muito mais.

Erros Comuns ao Trabalhar com Datas

🚨 1. Comparar datas no formato errado
❌ Errado:

SELECT * FROM pedido WHERE DATA_PEDIDO = '2025/03/17';

✔️ Correto:

SELECT * FROM pedidos WHERE DATA_PEDIDO = '2025-03-17';

🚨 2. Não considerar o horário em comparações
Se a coluna DATA_PEDIDO inclui horário, o filtro WHERE DATA_PEDIDO = '2025-03-17' pode falhar. Use BETWEEN ou >= e < para abranger todo o dia:

SELECT * FROM pedido WHERE DATA_PEDIDO BETWEEN '2025-03-17 00:00:00' AND '2025-03-17 23:59:59';

🚨 3. Não otimizar filtros de data
Se sua consulta for lenta, crie um índice na coluna de data:

CREATE INDEX idx_data_pedido ON pedido(DATA_PEDIDO);

Conclusão

As funções de data no SQL são ferramentas essenciais para qualquer analista de dados ou desenvolvedor. Saber como manipular datas corretamente pode otimizar consultas, evitar erros e tornar análises muito mais precisas.

Se você quer continuar aprimorando suas habilidades em SQL, acompanhe o Blog do SQL e conheça o curso SQL Simplificado para aprender na prática como usar SQL para análise de dados e otimização de bancos!

📢 Agora me conta: você já enfrentou problemas ao trabalhar com datas no SQL? Como resolveu?

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solicitar exportação de dados

Use este formulário para solicitar uma cópia de seus dados neste site.

Solicitar a remoção de dados

Use este formulário para solicitar a remoção de seus dados neste site.

Solicitar retificação de dados

Use este formulário para solicitar a retificação de seus dados neste site. Aqui você pode corrigir ou atualizar seus dados, por exemplo.

Solicitar cancelamento de inscrição

Use este formulário para solicitar a cancelamento da inscrição do seu e-mail em nossas listas de e-mail.