Comparação de datas com MySQL DATE_FORMAT
Ao comparar datas usando a função DATE_FORMAT do MySQL, é crucial entender que o formato escolhido afeta o resultado da comparação .
No exemplo fornecido, a tabela contém datas formatadas como '%d-%m-%Y' e a consulta tenta compará-las usando o mesmo formato. No entanto, isso leva a resultados incorretos porque "28-10-2012" é lexicograficamente maior que "02-11-2012".
Para resolver isso, é recomendado comparar datas como datas em vez de strings. A consulta correta deve ser:
select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';
Aqui, a função date() extrai o componente de data do campo starttime, enquanto date '2012-11-02' especifica a comparação data na forma de valor ano-mês. Isso garante que a comparação seja feita corretamente como datas.
Se starttime for um campo DATETIME, considere usar a seguinte consulta para evitar conversões repetidas:
select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';
Em geral, é aconselhável usar o padrão ISO-8601 para formatação de data, como y-M-d. No entanto, as consultas acima demonstram como realizar comparações de datas usando o formato fornecido.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3