Heim >Datenbank >MySQL-Tutorial >Wie entferne ich die Zeit effizient aus DateTime-Feldern in SQL Server?

Wie entferne ich die Zeit effizient aus DateTime-Feldern in SQL Server?

Linda Hamilton
Linda HamiltonOriginal
2025-01-22 10:51:10784Durchsuche

How to Efficiently Remove Time from DateTime Fields in SQL Server?

SQL Server: Zeit effizient aus DateTime-Daten entfernen

Bei der Arbeit mit datetime-Feldern in SQL Server muss häufig die Datumskomponente isoliert und die Uhrzeit verworfen werden. In diesem Artikel werden zwei gängige Techniken verglichen: DATEADD/DATEDIFF und Casting in char, wobei ihre Leistungsmerkmale analysiert werden.

Methodenvergleich

Der DATEADD/DATEDIFF Ansatz:

<code class="language-sql">a) SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)</code>

Dies nutzt geschickt DATEDIFF, um die Differenz in Tagen zur Epoche (01.01.1900) zu berechnen und dann DATEADD das Datum ohne die Zeitkomponente zu rekonstruieren.

Alternativ: Casting auf char:

<code class="language-sql">b) SELECT CAST(CONVERT(CHAR(11), GETDATE(), 113) AS DATETIME)</code>

Dadurch wird datetime in eine Zeichenfolge umgewandelt (die nur das Datum anzeigt) und dann zurück in datetime.

Leistungsanalyse

Tests haben ergeben, dass Methode (a) – DATEADD/DATEDIFF – im Allgemeinen weniger CPU-Ressourcen verbraucht, insbesondere bei großen Datensätzen. Allerdings ist es anfällig für potenzielle Probleme im Zusammenhang mit Inkonsistenzen in der Sprache und Datumsformatierung.

Methode (b) – Casting – überträgt aufgrund der zwischenzeitlichen char Konvertierung möglicherweise etwas mehr Daten, aber dieser Mehraufwand ist normalerweise weniger wirkungsvoll als die potenziellen Leistungssteigerungen von (a).

Weitere Überlegungen

Seit SQL Server 2008 ist eine direktere Methode verfügbar: direkte Umwandlung in den DATE Datentyp.

Empfehlungen

Beide Methoden erzielen das gewünschte Ergebnis, die optimale Wahl hängt jedoch vom Kontext Ihrer Anwendung ab. Für eine bessere Leistung, insbesondere bei großen Datensätzen, wird normalerweise DATEADD/DATEDIFF (Methode a) bevorzugt. Wenn die Indizierung der Spalte datetime von entscheidender Bedeutung ist, sollten Sie eine Umwandlung in DATE in Betracht ziehen oder sicherstellen, dass die Zeitkomponente keinen Einfluss auf die Indexnutzung hat.

Das obige ist der detaillierte Inhalt vonWie entferne ich die Zeit effizient aus DateTime-Feldern in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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