T-SQL-Rundungsmethode für Datetime-Werte mit Genauigkeit auf Minuten oder Stunden
SQL Server bietet integrierte Funktionen zum einfachen Runden von Datums-/Uhrzeitwerten auf die nächste Minute oder Stunde. Beispielsweise können Sie für den angegebenen Datum-Uhrzeit-Wert „22.09.2007 15:07:38.850“ die folgende Funktion verwenden:
<code class="language-sql">-- 舍入到最近的分钟 SELECT DATEADD(mi, DATEDIFF(mi, 0, @dt), 0) -- 舍入到最近的小时 SELECT DATEADD(hour, DATEDIFF(hour, 0, @dt), 0)</code>
Diese Methoden kürzen Sekunden bzw. Minuten, um den gewünschten Rundungseffekt zu erzielen. Wenn Sie auf- oder abrunden müssen, können Sie vor dem Abschneiden eine halbe Minute bzw. eine halbe Stunde addieren bzw. subtrahieren:
<code class="language-sql">-- 舍入到最近的分钟(向上) SELECT DATEADD(mi, DATEDIFF(mi, 0, DATEADD(s, 30, @dt)), 0) -- 舍入到最近的小时(向上) SELECT DATEADD(hour, DATEDIFF(hour, 0, DATEADD(mi, 30, @dt)), 0)</code>
Vor der Einführung des Datentyps date
in SQL Server 2008 konnte die obige Methode verwendet werden, um den Zeitanteil vom Typ datetime
abzuschneiden, sodass nur der Datumsanteil übrig blieb. Dies funktioniert, indem die Anzahl der Tage zwischen Datum und Uhrzeit und einem festen Zeitpunkt (0, steht für 1900-01-01 00:00:00.000) berechnet und diese Zahl dann zum festen Zeitpunkt addiert wird:
<code class="language-sql">-- 截断时间部分以仅获取日期 SELECT DATEADD(day, DATEDIFF(day, 0, @dt), 0)</code>
Das obige ist der detaillierte Inhalt vonWie rundet man T-SQL-DateTime-Werte auf die nächste Minute oder Stunde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!