Maison > base de données > tutoriel mysql > Comment puis-je comparer correctement les valeurs DATETIME et DATE dans SQL Server ?

Comment puis-je comparer correctement les valeurs DATETIME et DATE dans SQL Server ?

Barbara Streisand
Libérer: 2025-01-04 17:27:39
original
475 Les gens l'ont consulté

How Can I Correctly Compare DATETIME and DATE Values in SQL Server?

Comparaison de Datetime avec Date dans SQL Server

Lors de la comparaison d'une valeur datetime avec uniquement une date, le résultat peut être inattendu. En effet, le type de données datetime inclut à la fois des composants de date et d’heure. Par exemple, si vous avez une table utilisateur avec une colonne DateCreated de type datetime, la requête suivante :

Select * from [User] U
where  U.DateCreated = '2014-02-07'     
Copier après la connexion

ne renverra aucun enregistrement, même si l'utilisateur a été créé le 07/02/2014 à 12 heures. :30:47.220.

Pour comparer avec précision une date/heure avec seulement une date, utilisez ce qui suit method :

Select * from [User] U 
where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
Copier après la connexion

Cette requête est SARGable, ce qui signifie qu'elle peut utiliser un index sur la colonne DateCreated.

Pourquoi ne pas utiliser les fonctions ?

Il peut être tentant d'utiliser des fonctions comme CONVERT pour extraire le composant date du datetime. Cependant, cela n'est pas recommandé. Utilisation de fonctions dans la clause WHERE ou les conditions de jointure :

  • Supprime la possibilité pour l'optimiseur d'utiliser un index sur le champ
  • Ajoute des calculs inutiles pour chaque ligne de données

Éviter BETWEEN

BETWEEN doit également être évité lorsque traitant des plages de dates et d’heures. Utilisez plutôt le formulaire suivant :

WHERE col >= '20120101' AND col < '20120201'
Copier après la connexion

Ce formulaire est compatible avec tous les types de données et précisions, quelle que soit la partie temporelle.

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