sql >> Database >  >> RDS >> Sqlserver

Hoe het DATETIME-veld opvragen met alleen de datum in Microsoft SQL Server?

gebruik bereik of DateDiff-functie

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

of

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

Andere opties zijn:

  1. Als je controle hebt over het databaseschema en je hebt de tijdgegevens niet nodig, verwijder het dan.

  2. of, als u het moet behouden, voeg een berekend kolomkenmerk toe waarvan het tijdgedeelte van de datumwaarde is verwijderd...

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

of, in recentere versies van SQL Server...

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

dan kunt u uw vraag zo eenvoudig schrijven:

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


  1. NA LOGON (Oracle) trigger in PostgreSQL met extensie – login_hook

  2. Combineer meerdere SELECT-instructies

  3. Hoe rijen dynamisch naar kolommen te transponeren in MySQL

  4. Een geïndexeerde weergave-bug met scalaire aggregaten