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:
- Extraindo o mês:
SELECT EXTRACT (MONTH FROM DATE ‘2005-09-29’) FROM TABELA;
- Extraindo o Dia:
SELECT EXTRACT (DAY FROM DATE ‘2005-09-29’) FROM TABELA;
- Extraindo o ano:
SELECT EXTRACT (YEAR FROM DATE ‘2005-09-29’) FROM TABELA;
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á.