"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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?

Publié le 2025-03-22
Parcourir:229

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

Comparaison DateTime avec la date dans SQL Server

Lorsque vous comparez une valeur DateTime avec seulement une date, le résultat peut être inattendu. En effet, le type de données DateTime comprend à la fois les composants de date et de temps. Par exemple, si vous avez une table utilisateur avec une colonne de type DateCreated de type DateTime, la requête suivante:

Select * from [User] U
where  U.DateCreated = '2014-02-07'     

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

pour comparer avec précision une datetime avec [l'utilisateur] Unique où U.DateCreated & gt; = '2014-02-07' et u.dateCreated & lt; dataeadd (day, 1, '2014-02-07')

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

Removes the ability of the optimizer to use an index on the field

Adds unnecessary calculations for each row of data

Avoiding BETWEEN
  • BETWEEN should also be avoided when dealing with date and gammes de temps. Utilisez plutôt le formulaire suivant:
  • où col> = '20120101' et col & lt; '20120201'

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3