Heim >Datenbank >MySQL-Tutorial >Wie rundet man DateTime-Werte in T-SQL auf die nächste Minute oder Stunde?

Wie rundet man DateTime-Werte in T-SQL auf die nächste Minute oder Stunde?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-11 11:28:40109Durchsuche

How to Round DateTime Values to the Nearest Minute or Hour in T-SQL?

Datums-/Uhrzeitwert in T-SQL auf die nächste Minute oder Stunde runden

T-SQL bietet integrierte Funktionen zum Runden von Datums-/Uhrzeitwerten auf die nächste Minute oder Stunde. Gerundete Werte sind für die Datenanalyse und Berichtserstellung wertvoll.

Um einen Datums-/Uhrzeitwert auf die nächste Minute zu runden, verwenden Sie die folgende Formel:

<code class="language-sql">dateadd(mi, datediff(mi, 0, @dt), 0)</code>

Wobei @dt den zu rundenden Datums-/Uhrzeitwert darstellt.

Wenn Sie beispielsweise den Wert „22.09.2007 15:07:38.850“ auf die nächste Minute runden, erhalten Sie „22.09.2007 15:07:00.000“.

Um einen Datums-/Uhrzeitwert auf die nächste Stunde zu runden, verwenden Sie:

<code class="language-sql">dateadd(hour, datediff(hour, 0, @dt), 0)</code>

Diese Formel schneidet Sekunden und Minuten effektiv von einem Datum/Uhrzeit-Wert ab. Im gleichen Beispiel ergibt das Runden von „22.09.2007 15:07:38.850“ auf die nächste Stunde „22.09.2007 15:00:00.000“.

Darüber hinaus kann eine Auf- oder Abrundung erreicht werden, indem vor dem Abschneiden eine halbe Minute oder eine halbe Stunde zum Datum/Uhrzeit-Wert addiert wird.

Beispiel:

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

Das Ergebnis ist:

<code>2007-09-22 15:08:00.000
2007-09-22 15:00:00.000</code>

Vor der Einführung des Datumsdatentyps in SQL Server 2008 wurde eine ähnliche Technik verwendet, um den Stunden-, Minuten- und Sekundenteil eines Datums-/Uhrzeitwerts abzuschneiden, um nur das Datum zu erhalten. Die Idee besteht darin, die Anzahl der Tage zwischen einem Datum und einem festen Zeitpunkt zu bestimmen (0, was 1900-01-01 00:00:00.000 bedeutet). Durch Addition dieser Anzahl an Tagen zu einem festen Zeitpunkt erhält man das Originaldatum mit der Uhrzeit 00:00:00.000.

Das obige ist der detaillierte Inhalt vonWie rundet man DateTime-Werte in T-SQL auf die nächste Minute oder Stunde?. 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