Heim >Datenbank >MySQL-Tutorial >Wie entferne ich den Zeitanteil effizient aus einem SQL Server-Datum/Uhrzeit-Feld?
datetime
FeldernDas Extrahieren nur des Datumsteils aus einem SQL Server datetime
-Feld ist eine häufige Aufgabe. Zwei gängige Ansätze werden hier hinsichtlich ihrer Effizienz verglichen:
Methode A:
<code class="language-sql">SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)</code>
Methode B:
<code class="language-sql">SELECT CAST(CONVERT(CHAR(11), GETDATE(), 113) AS DATETIME)</code>
Leistungsbenchmark
Während beide Methoden im Allgemeinen schnell sind, zeigt Methode A durchweg eine überlegene Leistung, insbesondere bei größeren Datensätzen. Tests an einem Datensatz mit einer Million Zeilen ergaben einen deutlich geringeren CPU-Verbrauch bei Methode A, was ihre Effizienz unterstreicht.
Zusätzliche Faktoren
Über die Geschwindigkeit hinaus beeinflussen andere Überlegungen die Methodenauswahl:
CONVERT
bis CHAR
führt zu potenziellen Problemen mit gebietsschemaspezifischen Datumsformaten.FLOAT
intern, was Auswirkungen auf die Speicherung haben kann.SQL Server 2008 und höher
Für SQL Server 2008 und nachfolgende Versionen bietet die Funktion CAST
eine optimierte Alternative:
<code class="language-sql">CAST(GETDATE() AS DATE)</code>
Dieser Ansatz ist effizient und gibt direkt einen DATE
Datentyp zurück.
Indexoptimierung
Entscheidend ist, dass die Anwendung von Funktionen oder CAST
Operationen innerhalb von WHERE
-Klauseln die Indexnutzung behindern und sich auf die Abfrageleistung auswirken kann. Vermeiden Sie solche Praktiken nach Möglichkeit, um eine optimale Abfragegeschwindigkeit aufrechtzuerhalten.
Empfehlung
In Anbetracht der Leistung und Anpassungsfähigkeit lautet die empfohlene Methode zum Entfernen der Zeitkomponente aus datetime
Feldern in SQL Server:
<code class="language-sql">SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)</code>
Das obige ist der detaillierte Inhalt vonWie entferne ich den Zeitanteil effizient aus einem SQL Server-Datum/Uhrzeit-Feld?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!