Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak odpytać pole DATETIME używając tylko daty w Microsoft SQL Server?

użyj zakresu lub funkcji DateDiff

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

lub

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

Inne opcje to:

  1. Jeśli masz kontrolę nad schematem bazy danych i nie potrzebujesz danych czasowych, usuń go.

  2. lub, jeśli musisz go zachować, dodaj atrybut kolumny wyliczanej, w którym usunięto część czasu z wartości daty...

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

lub w nowszych wersjach SQL Server...

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

następnie możesz napisać zapytanie w prosty sposób:

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. Jak mogę wyczyścić pamięć podręczną zapytań programu SQL Server?

  2. Node.js MSSQL tedius ConnectionError:nie udało się połączyć z hostem lokalnym:1433 - połącz ECONNREFUSED

  3. Jak znaleźć nazwę ograniczenia w SQL Server

  4. ExecuteNonQuery zwraca -1 podczas używania sql COUNT pomimo ciągu zapytania

  5. Jak utworzyć bazę danych online z trybu przywracania w SQL Server?