1
resposta

Resolução Exercício - Combine funções de data com outras funções

SELECT
    p.id_emprestimo AS id_emprestimo
,	CASE
        WHEN DATEDIFF(CURRENT_DATE(), DATE_ADD(p.DataInicio, INTERVAL p.Prazo DAY)) > 0 THEN 'Vencido'
        ELSE 'No prazo'
    END AS status_emprestimo
FROM tabelaemprestimo AS p
;

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

1 resposta

Oi, Carlos Eduardo! Como vai?

Agradeço por compartilhar sua resolução de exercício com a comunidade Alura.

Sua solução ficou muito bem estruturada. Você utilizou o SELECT com CASE, WHEN, DATEDIFF e DATE_ADD de forma integrada para identificar o status de cada empréstimo. A lógica de calcular a data limite somando o campo DataInicio ao Prazo em dias com o INTERVAL DAY ficou clara e organizada.

Outro ponto positivo foi o uso do CURRENT_DATE() na comparação com DATEDIFF, garantindo que o status do id_emprestimo seja avaliado sempre com base na data atual do sistema. Isso torna a consulta dinâmica e confiável.

Compartilho também a função CURDATE() como alternativa ao CURRENT_DATE(), já que ambas retornam a data atual no MySQL. Veja este exemplo:


SELECT
    id_emprestimo,
    CURDATE() AS data_atual
FROM tabelaemprestimo;

Neste exemplo, o código exibe a data atual do sistema junto ao identificador do empréstimo, o que pode ajudar em testes e validações de consultas envolvendo datas. As duas formas são equivalentes, e conhecer ambas amplia seu repertório na escrita de consultas SQL.

Você já utilizou funções de data em outros contextos no SQL, como controle de atrasos, validade de produtos ou agendamentos?

Conteúdo relacionado:
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!