Kaedah pembundaran nilai masa tarikh T-SQL tepat kepada minit atau jam
SQL Server menyediakan fungsi terbina dalam untuk membundarkan nilai masa tarikh dengan mudah kepada minit atau jam terdekat. Sebagai contoh, untuk nilai datetime yang diberikan '2007-09-22 15:07:38.850', anda boleh menggunakan fungsi berikut:
<code class="language-sql">-- 舍入到最近的分钟 SELECT DATEADD(mi, DATEDIFF(mi, 0, @dt), 0) -- 舍入到最近的小时 SELECT DATEADD(hour, DATEDIFF(hour, 0, @dt), 0)</code>
Kaedah ini masing-masing memotong saat dan minit untuk mencapai kesan pembundaran yang diingini. Jika anda perlu membulatkan ke atas atau ke bawah, anda boleh menambah atau menolak setengah minit atau setengah jam masing-masing sebelum memotong:
<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>
Sebelum pengenalan date
jenis data dalam SQL Server 2008, kaedah di atas boleh digunakan untuk memotong bahagian masa daripada jenis datetime
, hanya meninggalkan bahagian tarikh. Ini berfungsi dengan mengira bilangan hari antara tarikh dan titik masa tetap (0, mewakili 1900-01-01 00:00:00.000), dan kemudian menambah nombor itu pada titik masa tetap:
<code class="language-sql">-- 截断时间部分以仅获取日期 SELECT DATEADD(day, DATEDIFF(day, 0, @dt), 0)</code>
Atas ialah kandungan terperinci Bagaimana untuk Membundarkan Nilai DateTime T-SQL kepada Minit atau Jam Terdekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!