Introdução ao SQL - Data e Hora

Veja nesta quick como manipular data e hora direto no SQL.

Quando criamos colunas com tipo de dado Data, podemos realizar uma série de cálculos e operações cronológicas. Podemos calcular o número de dias entre duas datas, somar e subtrair dias, meses e etc.

O padrão SQL especifica quatro tipos de dados relacionados a data e hora:

Tipo Descrição
DATE Apenas data
TIME Apenas Hora
TIMESTAMP Data e Hora
INTERVAL Intervalo entre os dois tipos de dados anteriores

O padrão SQL definiu algumas funções para determinar a data e/ou hora atuais do sistema, acrescentando CURRENT_ antes dos três primeiros tipos anteriores: CURRENT_DATE, CURRENT_TIME E CURRENT_TIMESTAMP. Em alguns bancos de dados são utilizadas as mesmas funções, sem o ( _ ).

Para sabermos quais vendas lançadas no dia de hoje, execute:

SELECT * FROM TABELA WHERE DATAVENDA = CURRENT_DATE;

Operações aritméticas com datas

Um coluna do tipo data é composta de seis elementos:

a Year (ano)
b Month (Mês)
c Day (dia)
d Hour (hora)
e Minute (minuto)
f Second (segundo)

A manipulação de datas e os cálculos que podem ser feitos dependem e variam muito em função do banco de dados utilizado. Convém consultar a documentação do seu banco de dados para certificar-se de como utilizá-la.

Dessa forma, é possível realizar operações como encontrar o intervalo de dias entre duas datas:

SELECT CURRENT_DATE, DATAVENDA, CURRENT_DATE – DATAVENDA DIFERENCA FROM TABELA;

Adicionar dias em uma data (nos exemplos a seguir, acrescentam-se 7 dias da data de vendas);

SELECT DATAVENDA + 7 FROM TABELA;

Podemos também fazer comparações com data, suponhamos que quisesermos todas vendas de hoje:

SELECT NOME, DATAVENDA FROM TABELA WHERE DATAVENDA = CURRENT_DATE;

Queremos todos os registros entre o intervalo de 01-01-2000 até hoje;

SELECT NOMNE, DATAVENDA FROM TABELA WHERE DATAVENDA BETWEEN ’01-01-2000’ AND CURRENT_DATE;

Trabalhando com Horas

Podemos também fazer comparações com hora, suponhamos que quisesermos o todos os registros entre a hora 08:00:00 até 20:00:00;

SELECT HORAINI, HORAFIM FROM TABELA WHERE HORAINI BETWEEN ’08:00:00’ AND CURRENT_TIME;

Podemos extrair a diferença entre horas, veja o exemplo;

SELECT HORAINI, HORAFIM, HORAFIM - HORAINI DIFERENCA FROM TABELA;

EXTRACT

Essa função extrai e retorna um valor de um campo do tipo data. É possível extrair apenas o dia, o mês, o ano, a hora, o minuto ou o segundo.

Veja exemplos:

Conclusão

Podemos perceber que não há segredo para trabalharmos com data e hora, podemos fazer n pesquisas e extrair vários valores de uma data, como forma de aprendizado, sugiro a você a fazer vários testes em seu banco de dados. No próximo artigo, irei mostrar como pesquisar em múltiplas tabelas. Até lá.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados