Comparaison des valeurs Datetime avec uniquement la date dans SQL Server
Lors de l'interrogation d'une base de données pour les enregistrements créés à une date spécifique, il est important de prendre en compte les nature datetime de la colonne. La comparaison d'un champ datetime avec uniquement la partie date à l'aide de l'opérateur égal (par exemple, U.DateCreated = '2014-02-07') peut ne pas renvoyer les résultats attendus.
Solution 1 : Utiliser des plages de dates
Pour comparer avec précision un champ datetime avec uniquement la partie date, utilisez une date range :
Select * from [User] U where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
Cette approche garantit que les enregistrements créés le '2014-02-07' sont récupérés, quelle que soit la composante temporelle.
Raison pour éviter les fonctions dans la clause WHERE
Il n'est pas recommandé d'utiliser des fonctions (par exemple, convertir) dans la clause WHERE pour deux principaux raisons :
Bonnes pratiques pour les plages de dates
Pour des performances et une précision optimales lors de l'interrogation de plages de dates et d'heures, il est recommandé d'utiliser le format suivant :
WHERE col >= '20120101' AND col < '20120201'
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!