Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membundarkan T-SQL DateTime kepada Minit dan Jam Terdekat?

Bagaimana untuk Membundarkan T-SQL DateTime kepada Minit dan Jam Terdekat?

Patricia Arquette
Lepaskan: 2025-01-11 09:59:50
asal
744 orang telah melayarinya

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

Gunakan fungsi untuk membundarkan T-SQL DateTime kepada minit dan jam terdekat

Soalan:

Bagaimana hendak membundarkan lajur masa tarikh kepada minit dan jam terdekat menggunakan fungsi sedia ada?

Penyelesaian:

Untuk membundarkan lajur masa tarikh kepada minit terdekat, gunakan kod berikut:

<code class="language-sql">select dateadd(mi, datediff(mi, 0, @dt), 0)</code>
Salin selepas log masuk

Di mana @dt ialah lajur masa tarikh yang anda mahu bulatkan.

Untuk membundarkan lajur masa tarikh kepada jam terdekat, gunakan kod berikut:

<code class="language-sql">select dateadd(hour, datediff(hour, 0, @dt), 0)</code>
Salin selepas log masuk

Sebagai contoh, jika nilai lajur @dt anda ialah '09-22-2007 15:07:38.850', pertanyaan ini akan kembali:

  • Minit akhir: 2007-09-22 15:07:00.000
  • Jam terakhir: 2007-09-22 15:00:00.000

Bundarkan ke atas atau bawah:

Untuk membulatkan ke atas atau ke bawah, tambahkan setengah minit atau setengah jam masing-masing, kemudian potong:

<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>
Salin selepas log masuk

Pertanyaan ini akan kembali:

  • Minit terdekat, dibundarkan ke atas: 2007-09-22 15:08:00.000
  • Jam terdekat, dibundarkan ke atas: 2007-09-22 16:00:00.000

Potong bahagian masa untuk mendapatkan tarikh:

Sebelum SQL Server 2008 memperkenalkan jenis data tarikh, anda boleh menggunakan kaedah yang sama untuk memotong bahagian masa daripada tarikh tarikh untuk mendapatkan tarikh sahaja:

<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>
Salin selepas log masuk

Ini akan mengembalikan bahagian tarikh lajur @dt dengan masa ditetapkan kepada 00:00:00.000.

Atas ialah kandungan terperinci Bagaimana untuk Membundarkan T-SQL DateTime kepada Minit dan Jam Terdekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan