Vos deux requêtes ne sont pas équivalentes. Le datediff
la version inclura toutes les valeurs du 01-Jan-2013
quelle que soit l'heure alors que la version intermédiaire n'inclura que les lignes du 01-Jan-2013
où l'heure est 00:00:00
.
Si vous comparez la plage et n'effectuez aucun calcul sur la colonne, votre requête pourra utiliser un index le Something_Date
et en même temps inclure toutes les valeurs du 01-Jan-2013
quelle que soit la partie horaire.
where
SIH.[Something_Date] >= '19700101' and
SIH.[Something_Date] < '20130102'