sql >> Databasteknik >  >> RDS >> Sqlserver

Hur frågar jag efter alla datum som är större än ett visst datum i SQL Server?

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

I din fråga, 2010-4-01 behandlas som ett matematiskt uttryck, så i huvudsak lyder det

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

(2010 minus 4 minus 1 is 2005 Konverterar den till en korrekt datetime , och att använda enstaka citattecken kommer att lösa problemet.)

Tekniskt sett kan parsern tillåta dig att komma undan med

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

den kommer att göra omvandlingen åt dig, men enligt min mening är den mindre läsbar än att explicit konvertera till en DateTime för underhållsprogrammeraren som kommer efter dig.



  1. EXECUTE...USING-satsen i PL/pgSQL fungerar inte med posttyp?

  2. Oracle 12cR2 nu i Beta

  3. Insikt i SQL Server Unique Constraints

  4. Identitetsökningen hoppar i SQL Server-databasen