Le champ datetime inclut à la fois la date et l'heure, avec une précision de l'ordre de la milliseconde. Votre requête ne fonctionnera que si elle est la milliseconde exacte stockée dans la base de données.
Pour vérifier si elle est aujourd'hui, mais ignorer l'heure de la journée, vous pouvez vérifier une gamme comme celui-ci:
select * from table where
DateCreated >= '2009-12-30' and
DateCreated < '2009-12-31'
Vous pouvez l'utiliser en conjonction avec une fonction qui convertit la date actuelle, comme Astander ou Khilon a posté. Voici un exemple complet utilisant la réponse d'Astander. De plus, comme le souligne Craig Young, cela fonctionnera avec les index.
select * from table where
DateCreated >= DATEDIFF(dd,0,GETDATE()) and
DateCreated < DATEDIFF(dd,0,GETDATE())
Peter Di Cecco réponse est le meilleur, il permet l'utilisation d'index. –
Pouvez-vous marquer la version de SQL Server que vous utilisez, SQL 2008 ayant un type DATE dans lequel vous pouvez convertir. Merci –