Question :
Lors de la comparaison de dates à l'aide de la fonction DATE_FORMAT, un L'utilisateur a rencontré des résultats inattendus, avec des enregistrements antérieurs à la date de comparaison apparaissant dans les résultats. Comment ce problème peut-il être résolu ?
Analyse :
Le problème vient de la comparaison des dates sous forme de chaînes plutôt que de leurs valeurs de date réelles. DATE_FORMAT convertit les dates en chaînes, qui sont ensuite comparées lexicographiquement, conduisant à des résultats incorrects.
Solution :
Pour comparer les dates avec précision, la requête doit comparer directement les valeurs de date, en utilisant la fonction DATE() pour extraire uniquement les informations de date. La requête modifiée suivante accomplit cela :
<code class="sql">select date_format(date(starttime),'%d-%m-%Y') from data where date(starttime) >= date '2012-11-02';</code>
Dans cette requête :
En comparant directement les dates, la requête filtre efficacement les enregistrements où la date est avant le '02/11/2012'.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!