Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come interrogare il campo DATETIME utilizzando solo la data in Microsoft SQL Server?

usa l'intervallo o la funzione DateDiff

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

o

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

Altre opzioni sono:

  1. Se hai il controllo sullo schema del database e non hai bisogno dei dati temporali, eliminali.

  2. oppure, se devi mantenerlo, aggiungi un attributo di colonna calcolato che abbia la parte dell'ora del valore della data rimossa...

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

oppure, nelle versioni più recenti di SQL Server...

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

quindi, puoi scrivere la tua query semplicemente come segue:

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