Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie frage ich alle Daten ab, die größer als ein bestimmtes Datum in SQL Server sind?

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

In Ihrer Abfrage 2010-4-01 wird als mathematischer Ausdruck behandelt, also lautet es im Wesentlichen

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

(2010 minus 4 minus 1 is 2005 Konvertieren in eine richtige datetime , und die Verwendung von einfachen Anführungszeichen behebt dieses Problem.)

Technisch könnte der Parser Ihnen erlauben, mit

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

Es übernimmt die Konvertierung für Sie, ist aber meiner Meinung nach weniger lesbar als die explizite Konvertierung in ein DateTime für den Wartungsprogrammierer, der nach Ihnen kommt.