Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como consultar o campo DATETIME usando apenas a data no Microsoft SQL Server?


use intervalo ou função 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

Outras opções são:

  1. Se você tem controle sobre o esquema do banco de dados e não precisa dos dados de tempo, retire-os.

  2. ou, se você precisar mantê-lo, adicione um atributo de coluna computado que tenha a parte de hora do valor de data removida...

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

ou, em versões mais recentes do SQL Server...

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

então, você pode escrever sua consulta simplesmente:
select * from test 
where DateOnly = '03/19/2014'