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

Как да направя заявка за всички дати, по-големи от определена дата в SQL Server?

select *  
from dbo.March2010 A 
where A.Date >= Convert(datetime, '2010-04-01' )

Във вашата заявка 2010-4-01 се третира като математически израз, така че по същество се чете

select *  
from dbo.March2010 A 
where A.Date >= 2005; 

(2010 minus 4 minus 1 is 2005 Преобразуването му в правилен datetime , и използването на единични кавички ще реши този проблем.)

Технически, анализаторът може да ви позволи да се измъкнете с

select *  
from dbo.March2010 A 
where A.Date >= '2010-04-01'

той ще извърши преобразуването вместо вас, но според мен е по-малко четим от изричното преобразуване в DateTime за програмиста за поддръжка, който ще дойде след вас.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да промените размера на колона в SQL Server (T-SQL)

  2. Използване на SQL Server Profiler | Отстраняване на проблеми с производителността на SQL Server -5

  3. SQL Server заявка за намиране на всички разрешения/достъп за всички потребители в база данни

  4. Как да избера последните 5 реда в таблица без сортиране?

  5. GETDATE() Примери в SQL Server (T-SQL)