Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come posso eseguire query per tutte le date maggiori di una determinata data in SQL Server?

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

Nella tua richiesta, 2010-4-01 è trattata come un'espressione matematica, quindi in sostanza si legge

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

(2010 minus 4 minus 1 is 2005 Convertirlo in un corretto datetime e l'utilizzo di virgolette singole risolverà questo problema.)

Tecnicamente, il parser potrebbe permetterti di farla franca

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

eseguirà la conversione per te, ma secondo me è meno leggibile rispetto alla conversione esplicita in un DateTime per il programmatore di manutenzione che verrà dopo di te.