Vergleichen von Zeitwerten in SQL Server
Beim Vergleichen von Zeitwerten, die in einem Datum/Uhrzeit-Feld gespeichert sind, ist es wichtig zu überlegen, ob die Datumskomponente vorhanden sein sollte in den Vergleich einbezogen. Im bereitgestellten Szenario möchte der Benutzer nur den Zeitteil ohne das Datum vergleichen.
Die vorgeschlagene Abfrage mithilfe der CONVERT-Funktion zum Konvertieren der Zeitwerte in eine Zeichenfolge funktioniert möglicherweise, ist jedoch möglicherweise ineffizient. Eine optimalere Lösung besteht darin, die interne Gleitkommadarstellung von Datum/Uhrzeit-Werten in SQL Server zu nutzen.
Um einen reinen Zeitvergleich effizient durchzuführen, können wir:
Zum Beispiel bei zwei Datums-/Uhrzeitwerten @first und @second:
DECLARE @first DATETIME = '2009-04-30 19:47:16.123'; DECLARE @second DATETIME = '2009-04-10 19:47:16.123'; SELECT ( CAST(@first AS FLOAT) - FLOOR(CAST(@first AS FLOAT)) ) - ( CAST(@second AS FLOAT) - FLOOR(CAST(@second AS FLOAT)) ) AS Difference;
Dieser Ansatz vergleicht die Zeitwerte direkt, ohne die Datumskomponente einzubeziehen, was eine genaue und effiziente Bereitstellung ermöglicht Ergebnisse.
Das obige ist der detaillierte Inhalt vonWie kann ich nur den Zeitanteil von DATETIME-Werten in SQL Server effizient vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!