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

Hvordan forespørger jeg efter alle datoer, der er større end en bestemt dato i SQL Server?

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

I din forespørgsel, 2010-4-01 behandles som et matematisk udtryk, så i det væsentlige lyder det

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

(2010 minus 4 minus 1 is 2005 Konvertering til en korrekt datetime , og brug af enkelte anførselstegn vil løse dette problem.)

Teknisk set kan parseren give dig mulighed for at slippe afsted med

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

den vil udføre konverteringen for dig, men efter min mening er den mindre læsbar end eksplicit at konvertere til en DateTime for vedligeholdelsesprogrammøren, der kommer efter dig.



  1. Håndtering af PostgreSQL High Availability – Del I:PostgreSQL Automatic Failover

  2. Lær, hvordan du importerer Excel-data til en MySQL-database

  3. SQL Server Update Trigger, Hent kun ændrede felter

  4. Hvordan man beregner procent med en SQL-sætning