Genaue Berechnung: T-SQL-Zeitwerte auf das nächste 15-Minuten-Intervall runden
Beim Umgang mit zeitbasierten Daten in T-SQL ist es oft notwendig, Werte auf ein bestimmtes Zeitintervall zu runden. Eine häufige Anforderung besteht darin, HH:MM-Werte auf das nächste 15-Minuten-Intervall zu runden.
Effiziente Rundungsmethode
Eine effiziente Möglichkeit, Zeitwerte auf das nächste 15-Minuten-Intervall zu runden, ohne auf komplexe UDF- oder CASE-Anweisungen angewiesen zu sein, sondern stattdessen die Funktionen DATEADD und DATEDIFF zu verwenden. Diese Methode beinhaltet:
Beispiel
Wenden Sie diese Methode auf Ihren spezifischen Berechnungsbedarf mit den Funktionen CONVERT, DATEADD und DATEDIFF an und Sie erhalten die folgende Abfrage:
<code class="language-sql">SELECT DATEADD(MINUTE, ROUND(DATEDIFF(MINUTE, 0, CONVERT(CHAR(8), DATEADD(n, SUM(DATEDIFF(n, starttime, stoptime)), 0), 108)) / 15.0, 0) * 15, 0)</code>
Diese Berechnung rundet den HH:MM-Zeitwert genau auf das nächste 15-Minuten-Intervall und stellt so sicher, dass ein Wert wie 00:08:00 zu 00:15:00 und 00:07:00 zu 00:00:00 wird.
Andere Methoden
Während die Methoden DATEADD und DATEDIFF effizient und genau sind, gibt es mehrere andere Methoden, die Sie zum Runden von Zeitwerten in T-SQL in Betracht ziehen können:
Verwenden Sie die ROUND-Funktion und geben Sie das Intervall an:
<code class="language-sql"> ROUND(time_value, 15)</code>
Verwenden der FLOOR-Funktion von SQL Server 2012:
<code class="language-sql"> FLOOR(DATEADD(MINUTE, time_value, 0))</code>
Das obige ist der detaillierte Inhalt vonWie können T-SQL-Zeitwerte effizient auf das nächste 15-Minuten-Intervall gerundet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!