Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann das DATETIME-Feld nur mit Datum in Microsoft SQL Server abgefragt werden?

use range oder DateDiff-Funktion

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

oder

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

Weitere Optionen sind:

  1. Wenn Sie die Kontrolle über das Datenbankschema haben und die Zeitdaten nicht benötigen, nehmen Sie sie heraus.

  2. oder, wenn Sie es behalten müssen, fügen Sie ein berechnetes Spaltenattribut hinzu, bei dem der Zeitteil des Datumswerts entfernt wurde ...

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

oder, in neueren Versionen von SQL Server...

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

dann können Sie Ihre Abfrage einfach so schreiben:

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