sql >> Databáze >  >> RDS >> Sqlserver

Jak dotazovat pole DATETIME pouze pomocí data v Microsoft SQL Server?

použijte rozsah nebo funkci DateDiff

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

nebo

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

Další možnosti jsou:

  1. Pokud máte kontrolu nad databázovým schématem a nepotřebujete časové údaje, vyjměte je.

  2. nebo, pokud si jej musíte ponechat, přidejte atribut vypočítaného sloupce, který má časovou část hodnoty data odstraněnou...

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

nebo v novějších verzích SQL Server...

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

pak můžete svůj dotaz napsat jednoduše:

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


  1. Vyberte velikost databáze SQL Server

  2. Zámky SQL Server – další závory, o kterých byste měli vědět

  3. Materializovaný pohled PostgreSQL

  4. Proč optimalizátor nepoužívá znalost zásobníku vyrovnávacích pamětí