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
Freigeben: 2025-01-11 09:59:50
Original
775 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage