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>
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>
Sebagai contoh, jika nilai lajur @dt anda ialah '09-22-2007 15:07:38.850', pertanyaan ini akan kembali:
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>
Pertanyaan ini akan kembali:
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>
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!