Datumsvergleich in SQL Server: Abfragen nach Datumsangaben, die größer als angegeben sind
In SQL Server umfassen Abfragen häufig den Vergleich von Datumsangaben, um bestimmte Daten zu filtern und abzurufen Daten. Wenn Sie versuchen, Datumsangaben abzufragen, die über einem bestimmten Datum liegen, ist es wichtig, Datumsformate richtig zu handhaben.
Bedenken Sie die folgende Abfrage:
SELECT * FROM dbo.March2010 A WHERE A.Date >= 2010-04-01;
wobei A.Date im Format ' dargestellt wird. 2010-03-04 00:00:00.000'. Diese Abfrage liefert jedoch möglicherweise nicht die erwarteten Ergebnisse.
Der Grund für dieses Problem liegt in der Interpretation des Ausdrucks 2010-04-01. In SQL Server werden mathematische Berechnungen für Datumswerte durchgeführt, wenn diese nicht in einfache Anführungszeichen gesetzt sind. Das Subtrahieren von 4 und 1 von 2010 ergibt 2005, was nicht der beabsichtigte Vergleichswert ist.
Um dieses Problem zu beheben, muss der Ausdruck mithilfe der Convert-Funktion explizit in einen Datetime-Datentyp konvertiert werden. Die korrigierte Abfrage lautet:
select * from dbo.March2010 A where A.Date >= Convert(datetime, '2010-04-01' )
Jetzt vergleicht die Abfrage die Daten korrekt und gibt Datensätze zurück, bei denen der A.Date-Wert größer oder gleich „2010-04-01“ ist.
Das obige ist der detaillierte Inhalt vonWie frage ich in SQL Server korrekt nach Datumsangaben ab, die größer als ein angegebenes Datum sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!