Maison > base de données > tutoriel mysql > Comment comparer correctement DateTime et les valeurs de date dans MySQL?

Comment comparer correctement DateTime et les valeurs de date dans MySQL?

Linda Hamilton
Libérer: 2025-01-24 15:57:09
original
531 Les gens l'ont consulté

How to Correctly Compare DATETIME and DATE Values in MySQL?

Comparaison date/heure MySQL : résolution des erreurs de syntaxe et des résultats inexacts

Lorsque vous comparez des dates dans une base de données MySQL, il est important de prendre en compte le type et le format des données pour éviter les erreurs et garantir des résultats précis. Un défi courant consiste à comparer les colonnes DATETIME aux formats de date qui ne contiennent pas de composant temporel.

Question :

Tenter d'utiliser la fonction CONVERT() pour comparer une colonne DATETIME à un format de date peut entraîner une erreur de syntaxe SQL.

Solution :

Pour résoudre ce problème, envisagez d'utiliser la fonction DATE(), qui extrait uniquement la partie date de la colonne DATETIME, ou utilisez une fonction de conversion de type de données appropriée pour convertir le champ DATETIME en un type de données date.

Alternative :

1. Utilisez la fonction DATE() :

<code class="language-sql">SELECT * FROM `players` WHERE DATE(us_reg_date) >= '2000-07-05' AND DATE(us_reg_date) < '2011-11-11';</code>
Copier après la connexion

2. Convertir DATETIME en DATE :

<code class="language-sql">SELECT * FROM `players` WHERE STR_TO_DATE(us_reg_date, '%Y-%m-%d') >= '2000-07-05' AND STR_TO_DATE(us_reg_date, '%Y-%m-%d') < '2011-11-11';</code>
Copier après la connexion

3. Utilisez ENTRE et INTERVALLE :

Une alternative consiste à utiliser le BETWEEN conditionnel et INTERVAL pour spécifier une plage contenant des dates (sans composant temporel) :

<code class="language-sql">SELECT * FROM `players` WHERE 
    us_reg_date BETWEEN '2000-07-05' AND
    DATE_ADD('2011-11-10', INTERVAL 1 DAY);</code>
Copier après la connexion

En employant ces stratégies alternatives, vous pouvez comparer efficacement les colonnes DATETIME avec les formats de date tout en évitant les erreurs de syntaxe et en garantissant l'exactitude des comparaisons de dates dans les requêtes MySQL.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal