Abfragen nach Daten, die größer als ein bestimmtes Datum in SQL Server sind
Beim Versuch, Datensätze mit Datumsangaben nach einem bestimmten Datum abzurufen, haben Sie Möglicherweise treten bei Ihrer Anfrage Probleme auf. Eine Abfrage ähnlich der folgenden:
SELECT * FROM dbo.March2010 A WHERE A.Date >= 2010-04-01;
wobei A.Date im Format 2010-03-04 00:00:00.000 vorliegt, liefert beispielsweise möglicherweise nicht die erwarteten Ergebnisse.
Um dieses Problem zu beheben, ist es wichtig, den Datumsausdruck mithilfe der Konvertierungsfunktion in das richtige Datums-/Uhrzeitformat zu konvertieren. Die korrekte Syntax lautet:
SELECT * FROM dbo.March2010 A WHERE A.Date >= Convert(datetime, '2010-04-01' )
Der Grund dafür ist, dass SQL Server bei der Verwendung mathematischer Ausdrücke den Datumswert als Zahl behandelt, was zu falschen Vergleichen führt. Durch die Konvertierung des Datums in Datum/Uhrzeit wird sichergestellt, dass der Vergleich korrekt durchgeführt wird.
Obwohl SQL Server möglicherweise eine implizite Konvertierung mit einfachen Anführungszeichen zulässt, wie zum Beispiel:
SELECT * FROM dbo.March2010 A WHERE A.Date >= '2010-04-01'
Es wird als weniger lesbar und weniger angesehen zuverlässiger als die explizite Konvertierungsmethode. Die explizite Konvertierung gewährleistet die ordnungsgemäße Verarbeitung von Datumsangaben, unabhängig von den Benutzereinstellungen oder dem aktuellen Systemdatum.
Das obige ist der detaillierte Inhalt vonWie kann ich in SQL Server Daten korrekt abfragen, die größer als ein bestimmtes Datum sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!