Olá! Te desejo boas-vindas ao curso SQL: Funções de Data! Meu nome é Marcelo Cruz, sou instrutor na Escola de Dados e estarei com vocês ao longo deste curso
Audiodescrição: Marcelo se descreve como um homem de pele clara, com cabelos cacheados castanho-escuro, e barba, bigode e cavanhaque também castanho-escuro. Veste uma camisa preta e, ao fundo, há uma parede branca com iluminação em tons de verde e azul.
Neste vídeo, vamos explorar as principais funções de data no SQL.
Se surgir alguma dúvida, sinta-se à vontade para acessar o fórum ou participar da comunidade da Alura no Discord. Lá, você poderá interagir com outros alunos e contar com o apoio dos nossos monitores.
Agora, vamos ao que interessa!
Aqui está a lista das funções de data que iremos estudar:
NOW
DATE
STRFTIME
DATEDIFF
EXTRACT
DATE_ADD
CURDATE
Além dessas funções, também veremos o uso do comando CASE WHEN
em conjunto com algumas delas. Vamos começar?
NOW
Para começar, vamos conhecer a função de data NOW
, que retorna a data e a hora atuais, como no exemplo a seguir:
SELECT NOW() AS data_atual;
No comando SQL acima, utilizamos o SELECT
para chamar a função NOW
, em vez de selecionar um campo de uma tabela. O resultado dessa consulta será um campo chamado data_atual
(nome que atribuímos a ele), contendo a data e a hora no formato ano, mês e dia. No exemplo, a data retornada é 2025-01-07 12:34:56
, ou seja, 07 de janeiro de 2025, com o horário exibido no formato padrão: hora, minuto e segundo.
CURDATE
O próximo comando trará um resultado semelhante ao da função NOW
, mas retornará apenas a data. Utilizaremos o SELECT
para chamar a função CURDATE
e salvaremos o resultado novamente como data_atual
.
SELECT CURDATE() AS data_atual;
Dessa vez, o valor retornado será 2025-01-07
, ou seja, 07 de janeiro de 2025, sem incluir a informação de horário, mantendo o formato ano, mês e dia que já vimos anteriormente.
DATE
A próxima função que vamos explorar é a DATE
, que extrai apenas a data de um valor do tipo DATETIME
(que inclui tanto data quanto hora). No nosso comando, utilizamos SELECT
e chamamos a função DATE
, passando como argumento um objeto do tipo DATETIME
. A função extrai apenas a data desse valor, e o resultado final é armazenado no campo somente_data
.
SELECT DATE(NOW()) AS somente_data;
No exemplo, o resultado exibido é 2025-01-07
, ou seja, 07 de janeiro de 2025, extraído de um objeto que originalmente continha um valor DATETIME
.
STRFTIME
Em seguida, vamos conhecer a função STRFTIME
, com a qual podemos formatar uma data em um padrão diferente. Tomemos o seguinte código como exemplo:
SELECT STRFTIME('%d-%m-%Y', 'now') AS data_formatada;
No comando SQL acima, utilizamos SELECT
e chamamos a função STRFTIME
, que recebe dois parâmetros. O primeiro define o formato desejado para a data. Até agora, utilizamos o padrão ano, mês e dia, mas queremos um formato mais familiar no Brasil: dia, mês e ano. Para isso, no primeiro parâmetro, entre aspas simples, passamos %d-%m-%Y
, onde %d
representa o dia, %m
representa o mês e %Y
representa o ano.
O segundo parâmetro da função será now
, que retorna a data e hora atuais. O resultado dessa operação será salvo no campo data_formatada
, contendo a data no formato 07-01-2025
.
DATEDIFF
A próxima função que vamos explorar é DATEDIFF
, que calcula a diferença entre duas datas fornecidas. Tomemos o seguinte código como exemplo:
SELECT DATEDIFF('2025-01-07', '2025-01-01') AS dias_diferenca;)
No nosso comando SQL, utilizamos SELECT
para chamar DATEDIFF
, passando duas datas como argumentos. A primeira será a data inicial (2025-01-07) e a segunda será 2025-01-01. O objetivo é calcular a diferença entre elas e armazenar o resultado no campo dias_diferenca
.
O resultado final será 6
, que corresponde exatamente ao intervalo entre as duas datas informadas.
EXTRACT
O próximo comando é a função EXTRACT
, que permite extrair partes específicas de uma data, como ano, mês ou dia. Usaremos o seguinte código:
SELECT EXTRACT(YEAR FROM NOW()) AS ano_atual;
No nosso comando SQL, utilizamos SELECT
e chamamos a função EXTRACT
, especificando qual parte da data queremos obter. Neste exemplo, extraímos o ano (YEAR
) da função NOW
. Vale lembrar que NOW
retorna tanto a data quanto a hora, mas, com EXTRACT
, conseguimos isolar apenas o ano.
O resultado dessa operação será salvo no campo ano_atual
, e o valor retornado será 2025
. Assim, confirmamos que a função extraiu corretamente apenas essa parte da data.
DATE_ADD
A próxima função é DATE_ADD
, que permite adicionar ou subtrair um intervalo de tempo a uma data. Para este caso, usaremos o seguinte código:
SELECT DATE_ADD(CURDATE(), INTERVAL 7 DAY) AS data_futura;
No nosso comando SQL, utilizamos SELECT
e chamamos DATE_ADD()
. O primeiro parâmetro passado é a data atual, obtida com a função CURDATE()
. O segundo parâmetro define o intervalo de tempo que queremos adicionar. Nesse caso, adicionamos 7 dias, utilizando a sintaxe INTERVAL 7 DAY
.
O resultado final será armazenado no campo data_futura
. A data atual no exemplo é 07 de janeiro de 2025, então, ao somarmos 7 dias, a data retornada será 2025-21-14
, ou seja, 14 de janeiro de 2025.
CASE WHEN
Por fim, vamos conhecer o comando CASE WHEN
, que permite criar condições dentro de uma consulta, retornando valores diferentes com base em critérios específicos. Para este caso, usaremos o seguinte código:
SELECT nome, data_nascimento,
CASE
WHEN DATEDIFF(CURDATE(), data_nascimento) / 365 >= 18 THEN 'Adulto'
ELSE 'Menor'
END AS categoria
FROM pessoas;
No nosso comando SQL, selecionamos o nome e a data de nascimento da tabela pessoas
. No entanto, criamos também um novo campo que não existe originalmente na tabela.
A lógica funciona da seguinte forma:
DATEDIFF
para calcular a diferença entre duas datas.CURDATE
.data_nascimento
) da pessoa.DATEDIFF
por 365, que são os dias do ano, para obter a idade aproximada em anos.Adulto
.Menor
.END
e salvamos esse resultado no campo categoria
.Assim, ao executar o comando, o SQL retorna uma tabela que inclui o nome, a data de nascimento e a nova categoria de idade, identificando cada pessoa como Adulto ou Menor com base na diferença entre a data atual e a data de nascimento.
Primeiro, analisamos a tabela original, que contém os campos ID
, NOME
e DATA_NASCIMENTO
para três pessoas: Ana, João e Maria.
ID | NOME | DATA_NASCIMENTO |
---|---|---|
1 | Ana | 2000-05-15 |
2 | João | 2010-07-20 |
3 | Maria | 1995-03-10 |
Ana nasceu em 15 de fevereiro de 2000. Como a data atual indica que ela já completou 18 anos, será categorizada como Adulta. João nasceu em 20 de setembro de 2010. Como ainda não atingiu a maioridade, será classificado como Menor. Maria nasceu em 10 de fevereiro de 1995. Assim como Ana, já é maior de idade e será categorizada como Adulta.
Ao executar o código, obtemos o resultado esperado:
NOME | DATA_NASCIMENTO | CATEGORIA |
---|---|---|
Ana | 2000-05-15 | Adulto |
João | 2010-07-20 | Menor |
Maria | 1995-03-10 | Adulto |
Dessa forma, conseguimos aplicar a lógica do CASE WHEN
, criando o novo campo categoria
, que classifica automaticamente cada pessoa com base na idade.
Ao longo deste curso, exploramos diversas funções de data no SQL, incluindo:
NOW
– retorna a data e hora atuais.DATE
– extrai apenas a data de um valor DATETIME
.STRFTIME
– formata a data em diferentes padrões.DATEDIFF
– calcula a diferença entre duas datas.EXTRACT
– extrai partes específicas de uma data (ano, mês, dia).DATE_ADD
– adiciona ou subtrai intervalos de tempo a uma data.CURDATE
– retorna a data atual sem o horário.CASE WHEN
– cria condições dentro da consulta, permitindo a categorização com base em regras personalizadas.Agora é hora de praticar! Logo após este vídeo, disponibilizamos diversos exercícios para que vocês possam reforçar o aprendizado.
Bons estudos e até logo!
O curso Praticando SQL: trabalhando com funções de Data possui 10 minutos de vídeos, em um total de 13 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.