sexta-feira, 31 de outubro de 2014

Adicionar datas em SQL

Hoje apresentarei uma função SQL que não é muito usada, acredito. Essa função é a date_add(). Ela funciona de forma bem simples. Abaixo, deixo o link da onde eu aprendi essa função.

http://www.w3schools.com/sql/func_dateadd.asp

Agora, vamos ao nosso exemplo.

Crie a tabela PESSOA

 create table PESSOA (id int auto_increment primary key, nome varchar(100), data_nascimento date);  


Com a execução deste comando teremos uma estrutura igual a da tabela abaixo


Agora vamos inserir alguns dados

 insert into PESSOA (nome, data_nascimento) values ('Joao Paulo', '1990-03-28'); 
 insert into PESSOA (nome, data_nascimento) values ('Leonardo Rocha', '199
 2-02-05');
 insert into PESSOA (nome, data_nascimento) values ('Delson Junior', '1950-10-30');
IMPORTANTE: É importante notar que não é necessário incluir a coluna id na query de insert pois, ela é auto incrementável e a data segue o padrão YYYY-MM-DD pois, é esse o padrão do MySQL.

O resultado final deve ser algo desse tipo



Agora vamos a parte mais interessante. Execute a seguinte query.

 SELECT id,nome, DATE_ADD(data_nascimento, INTERVAL 45 DAY ) AS DataAniversario from PESSOA;  


O resultado atingido deve ser este:



IMPORTANTE: O alias DataAniversario é importante porque é o nome dado à coluna de datas de aniversário acrescidas de 45 dias. Sem esse alias a coluna não teria um nome.

A palavra chave DAY é do MySQL. Simboliza que o comando irá adicionar 45 dias à data. Abaixo segue uma listagem com todas as opções possíveis para acréscimo de data.


  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH


Pronto galera, terminamos !! Agora não é mais necessário somar datas na sua linguagem de programação, já é possível fazer query no banco de dados trazendo os resultados prontos.

Dicas ? Críticas ? Sugestão de tema ? Deixa aí embaixo, nos comentários.

Nenhum comentário: