1
resposta

Resolução Exercício - Obtenha a data e hora atual

SELECT NOW() AS data_hora_atual;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Carlos Eduardo. Como vai?

A sua resolução ficou perfeita! Direta, limpa e utilizando exatamente a função nativa ideal para o cenário no MySQL. Como um Engenheiro de Dados e Tech Lead experiente, você sabe bem que dominar essas funções de manipulação de tempo é a base para criar auditorias, logs e pipelines de dados confiáveis.

O uso da função NOW() é excelente porque ela captura, em uma única chamada, o carimbo de data e hora (timestamp) completo do momento exato em que a query iniciou sua execução no servidor de banco de dados. O apelido (AS data_hora_atual) também foi uma ótima prática para deixar o cabeçalho do resultado limpo e legível.

Para enriquecer o seu tópico e trazer um conteúdo avançado para a comunidade do curso, vale a pena detalhar o comportamento dos bastidores do MySQL e como a função NOW() se diferencia de outras alternativas comuns de manipulação temporal:

1. NOW() vs. SYSDATE(): A armadilha do tempo

Existe uma diferença sutil e crucial entre essas duas funções que costuma pegar muitos desenvolvedores de surpresa em consultas longas ou em loops:

  • NOW() (O que você usou): Retorna uma hora constante para todo o bloco da query, baseada no momento em que a instrução começou a ser executada. Se a sua query demorar 10 minutos para rodar e processar milhões de linhas, o valor de NOW() será idêntico para a primeira e para a última linha.
  • SYSDATE(): Retorna o horário exato em que a função é executada de fato. Em uma query longa, cada linha processada pode receber um timestamp ligeiramente diferente.

Impacto em Engenharia de Dados: O uso do SYSDATE() pode impedir que o MySQL utilize índices de forma eficiente e prejudicar a otimização da query, tornando o seu uso desaconselhável na maioria dos cenários corporativos. Sua escolha pelo NOW() foi a mais segura e performática.

2. Anatomia do tipo de dado retornado

Ao executar o comando, o MySQL devolve o dado estruturado no formato padrão YYYY-MM-DD HH:MM:SS, mapeado por baixo dos panos como um tipo DATETIME ou TIMESTAMP (dependendo do contexto da tabela).

Se em algum momento do seu pipeline você precisar isolar apenas uma das partes desse retorno, o ecossistema SQL nos dá funções derivadas muito úteis para o dia a dia:

  • Se precisar apenas do dia: CURRENT_DATE() ou CURDATE() 2026-05-21
  • Se precisar apenas do horário: CURRENT_TIME() ou CURTIME() 21:24:38

Parabéns pelo excelente código e por compartilhar o print do seu workbench rodando perfeitamente com a comunidade!

Espero que possa ter lhe ajudado!