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