Heim > Datenbank > MySQL-Tutorial > Wie vergleiche ich effizient nur Zeitwerte in SQL Server?

Wie vergleiche ich effizient nur Zeitwerte in SQL Server?

Patricia Arquette
Freigeben: 2024-12-28 01:32:11
Original
163 Leute haben es durchsucht

How to Efficiently Compare Only Time Values in SQL Server?

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
Nach dem Login kopieren

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:

  • cast(@first as float) - floor(cast(@first as float)) berechnet den Zeitteil von @first im Gleitkommaformat.
  • cast(@second as float) - floor(cast(@second as float)) macht dasselbe für @second.
  • Das Subtrahieren der Zeitteile ergibt die Differenz zwischen den beiden Zeiten.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage