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

Wie rundet man T-SQL DateTime auf die nächste Minute und Stunde?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-11 09:59:50777Durchsuche

How to Round T-SQL DateTime to the Nearest Minute and Hour?

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:

  • Last Minute: 22.09.2007 15:07:00.000
  • Letzte Stunde: 22.09.2007 15:00:00.000

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:

  • Nächste Minute, aufgerundet: 22.09.2007 15:08:00.000
  • Nächste Stunde, aufgerundet: 22.09.2007 16:00:00.000

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!

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