Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment interroger toutes les dates supérieures à une certaine date dans SQL Server ?

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

Dans votre requête, 2010-4-01 est traité comme une expression mathématique, donc il se lit essentiellement

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

(2010 minus 4 minus 1 is 2005 Le convertir en un datetime approprié , et l'utilisation de guillemets simples résoudra ce problème.)

Techniquement, l'analyseur pourrait vous permettre de vous en sortir

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

il fera la conversion pour vous, mais à mon avis, il est moins lisible que de convertir explicitement en un DateTime pour le programmeur de maintenance qui viendra après vous.