Verwenden Sie die Funktion, um T-SQL DateTime auf die nächste Minute und Stunde zu runden
Frage:
Wie rundet man eine Datetime-Spalte mit vorhandenen Funktionen auf die nächste Minute und Stunde?
Lösung:
Um eine Datetime-Spalte auf die nächste Minute zu runden, verwenden Sie den folgenden Code:
<code class="language-sql">select dateadd(mi, datediff(mi, 0, @dt), 0)</code>
Wobei @dt die Datetime-Spalte ist, die Sie runden möchten.
Um eine Datetime-Spalte auf die nächste Stunde zu runden, verwenden Sie den folgenden Code:
<code class="language-sql">select dateadd(hour, datediff(hour, 0, @dt), 0)</code>
Wenn Ihr @dt-Spaltenwert beispielsweise „22.09.2007 15:07:38.850“ lautet, geben diese Abfragen Folgendes zurück:
Auf- oder Abrunden:
Zum Auf- oder Abrunden addieren Sie eine halbe Minute bzw. eine halbe Stunde und kürzen dann:
<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>
Diese Abfragen geben Folgendes zurück:
Kürzung des Zeitteils, um das Datum zu erhalten:
Bevor SQL Server 2008 den Datumsdatentyp einführte, konnten Sie eine ähnliche Methode verwenden, um den Zeitanteil einer Datums-/Uhrzeitangabe abzuschneiden, um nur das Datum zu erhalten:
<code class="language-sql">-- 获取 datetime 和固定点 (1900-01-01 00:00:00.000) 之间的日数 declare @days int set @days = datediff(day, 0, @dt) -- 将日数添加到固定点以获取日期,并将时间设置为 00:00:00.000 select dateadd(day, @days, 0)</code>
Dadurch wird der Datumsteil der @dt-Spalte mit der auf 00:00:00.000 eingestellten Zeit zurückgegeben.
Das obige ist der detaillierte Inhalt vonWie rundet man T-SQL DateTime auf die nächste Minute und Stunde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!