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

Comment interroger le champ DATETIME en utilisant uniquement la date dans Microsoft SQL Server ?

utiliser la plage ou la fonction DateDiff

 select * from test 
 where date between '03/19/2014' and '03/19/2014 23:59:59'

ou

 select * from test 
 where datediff(day, date, '03/19/2014') = 0

Les autres options sont :

  1. Si vous contrôlez le schéma de la base de données et que vous n'avez pas besoin des données temporelles, supprimez-les.

  2. ou, si vous devez le conserver, ajoutez un attribut de colonne calculée dont la partie heure de la valeur de date est supprimée...

Alter table Test Add DateOnly As DateAdd(day, datediff(day, 0, date), 0)

ou, dans les versions plus récentes de SQL Server...

Alter table Test Add DateOnly As Cast(DateAdd(day, datediff(day, 0, date), 0) as Date)

ensuite, vous pouvez écrire votre requête aussi simplement :

select * from test 
where DateOnly = '03/19/2014'