Heim >Datenbank >MySQL-Tutorial >Wie kann ich den Datumsteil effizient aus einem DateTime-Wert in SQL Server extrahieren?

Wie kann ich den Datumsteil effizient aus einem DateTime-Wert in SQL Server extrahieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-13 07:55:421010Durchsuche

How Can I Efficiently Extract the Date Part from a DateTime Value in SQL Server?

Datum aus SQL Server-Datums-/Uhrzeitwert extrahieren

Die meisten SQL-Anwendungen verarbeiten Daten, die Datums- und Uhrzeitkomponenten enthalten. In einigen Fällen müssen wir jedoch nur den Datumsteil extrahieren und die Zeitinformationen verwerfen. Dies kann durch verschiedene Techniken in SQL Server effektiv erreicht werden.

Die effizienteste Methode

Obwohl es mehrere Methoden gibt, ist die effizienteste Methode zum Extrahieren von Datumsangaben aus datetime in SQL Server die Verwendung einer Kombination aus der Funktion DATEADD() und der Funktion DATEDIFF(). Diese Methode umfasst die folgenden Schritte:

  1. Verwenden Sie DATEDIFF(DAY, 0, ), um die Anzahl der Tage zwischen 0 und der angegebenen Datumszeit zu berechnen. Dieser Schritt berechnet effektiv den täglichen Offset von der Epoche (1. Januar 1900).
  2. Wenden Sie DATEADD() auf das Feld DAY an und verwenden Sie das Ergebnis von Schritt 1, um eine neue Datumszeit zu erhalten, deren Zeitkomponente auf 00:00:00 zurückgesetzt wird.

Zum Beispiel:

<code class="language-sql">SELECT DATEADD(DAY, DATEDIFF(DAY, 0, '2008-09-25 12:34:56'), 0)</code>

Im Vergleich zu anderen Optionen wie der Konvertierung mit CAST(FLOOR(CAST(... AS FLOAT)) AS DATETIME) oder CONVERT(DATETIME, CONVERT(VARCHAR(10), ..., 120), 120) ist dies Diese Methode hat sich als die schnellste und effizienteste Methode erwiesen.

Benchmark

Leistungstests an einem Datensatz mit über 130 Millionen Datensatzzeilen mit millisekundengenauen Zeitstempeln ergaben die folgenden Ergebnisse:

方法 CPU时间(ms)
纯SELECT 422
Floor-Cast 625
字符串转换 1953
DateAdd 531

Beachten Sie, dass die Leistung je nach Größe, Verteilung und anderen Faktoren Ihrer Daten variieren kann.

Das obige ist der detaillierte Inhalt vonWie kann ich den Datumsteil effizient aus einem DateTime-Wert in SQL Server extrahieren?. 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