Maison >base de données >tutoriel mysql >Comment extraire efficacement les dates des colonnes DateTime dans MySQL ?

Comment extraire efficacement les dates des colonnes DateTime dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-02 17:33:10771parcourir

How to Efficiently Extract Dates from DateTime Columns in MySQL?

Sélectionner efficacement des dates à partir des colonnes Datetime

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.

Le problème

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.

La solution

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn