Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como faço para consultar todas as datas maiores que uma determinada data no SQL Server?

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

Em sua consulta, 2010-4-01 é tratado como uma expressão matemática, então, em essência, lê-se
select *  
from dbo.March2010 A 
where A.Date >= 2005; 

(2010 minus 4 minus 1 is 2005 Convertendo para um datetime adequado , e usar aspas simples corrigirá esse problema.)

Tecnicamente, o analisador pode permitir que você
select *  
from dbo.March2010 A 
where A.Date >= '2010-04-01'

ele fará a conversão para você, mas na minha opinião é menos legível do que converter explicitamente para um DateTime para o programador de manutenção que virá depois de você.