Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да заявя поле DATETIME, използвайки само дата в Microsoft SQL Server?

използвайте диапазон или функция DateDiff

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

или

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

Други опции са:

  1. Ако имате контрол върху схемата на базата данни и не се нуждаете от времеви данни, извадете го.

  2. или, ако трябва да го запазите, добавете атрибут на изчислена колона, който има отстранена частта от времето от стойността на датата...

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

или в по-новите версии на SQL Server...

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

след това можете да напишете заявката си просто:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на резултата от израз (например извикване на функция) в списък с параметри на запомнени процедури?

  2. Как да видя пълното съдържание на текстова или varchar(MAX) колона в SQL Server 2008 Management Studio?

  3. PIVOT заявка към различни записи

  4. Групово вмъкване на частично цитиран CSV файл в SQL Server

  5. Съхранение и анализ на документи във файлова система на Windows със семантично търсене на SQL Server – част 2