Vergleichen der Zeit in SQL Server
Beim Vergleich von Zeitwerten in SQL Server ist es wichtig, nur die Zeitkomponente zu berücksichtigen und das Datum außer Acht zu lassen. Um dies zu erreichen, ist ein etwas anderer Ansatz erforderlich als beim Standardvergleich zwischen Datum/Uhrzeit-Feldern.
Um Zeitwerte effizient zu vergleichen, kann man sich die Tatsache zunutze machen, dass SQL Server Datumsangaben als Gleitkommazahlen speichert. Die Ziffern vor der Dezimalstelle stellen das Datum dar, während die Ziffern danach die Uhrzeit darstellen.
Beispiel:
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
In diesem Beispiel sind die Datumsteile beider @ first und @second werden verworfen, indem der ganzzahlige Teil jeder Gleitkommadarstellung mit floor() subtrahiert wird. Das Ergebnis ist ein Bruchwert, der den Zeitunterschied darstellt und dann zum Vergleich verwendet werden kann.
Erklärung:
Diese Methode ist effizienter als die Konvertierung der Datums-/Uhrzeitwerte in Zeichenfolgen für Vergleich, da unnötige Datenkonvertierungen vermieden werden.
Das obige ist der detaillierte Inhalt vonWie vergleiche ich effizient nur Zeitwerte in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!