Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Obtenir la ligne où la colonne datetime =aujourd'hui - Noob du serveur SQL

Sur SQL Server 2008, vous auriez un nouveau DATE type de données, que vous pourriez utiliser pour y parvenir :

SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN 
   CAST(GETDATE() AS DATE) AND DATEADD(DAY, 1, CAST(GETDATE() AS DATE))

Le CAST(GETDATE() AS DATE) convertit la date et l'heure actuelles en une valeur de date uniquement, par ex. renvoie '2010-04-06' pour le 6 avril 2010. Ajouter un jour à cela sélectionne essentiellement toutes les valeurs datetime d'aujourd'hui.

Dans SQL Server 2005, il n'y a pas de moyen facile de le faire - la solution la plus élégante que j'ai trouvée ici consiste à utiliser la manipulation numérique du DATETIME pour obtenir le même résultat :

SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN 
   CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME) AND 
   DATEADD(DAY, 1, CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME))