Lorsque vous travaillez avec des types de données datetime, il peut souvent être nécessaire d'extraire des composants spécifiques, tels que des dates ou des heures. Cet article aborde le défi de la récupération des dates à partir des colonnes datetime dans MySQL.
Une requête courante consiste à filtrer les lignes en fonction d'une date spécifique, comme dans l'exemple suivant :
SELECT * FROM data WHERE datetime = '2009-10-20' ORDER BY datetime DESC;
Cependant, la solution fournie consistant à utiliser une clause BETWEEN pour définir une plage de dates du 20/10/2009 00:00:00' à '2009-10-20 23:59:59' renvoie un ensemble de résultats vide.
Pour extraire efficacement les dates, MySQL fournit le DATE() fonction, qui renvoie le composant date d’une valeur datetime. L'utilisation de DATE() dans la clause WHERE permet une comparaison directe avec un littéral de date :
SELECT * FROM data WHERE DATE(datetime) = '2009-10-20' ORDER BY datetime DESC;
Une approche alternative qui peut parfois améliorer les performances consiste à utiliser l'opérateur LIKE avec un suffixe générique :
SELECT * FROM data WHERE datetime LIKE '2009-10-20%'
Cependant, il est crucial de noter que les comparaisons LIKE peuvent avoir des implications sur les performances, comme indiqué dans d'autres fils de discussion Stack Exchange.
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!