Bundarkan nilai masa HH:MM ke selang 15 minit terdekat dalam T-SQL
Dalam analisis data, pembundaran nilai masa ke selang waktu yang terdekat ialah tugas biasa. Dalam contoh ini, matlamat kami adalah untuk membundarkan nilai HH:MM kepada selang 15 minit yang terdekat.
Kaedah yang tidak memerlukan fungsi yang ditentukan pengguna
Walaupun menggunakan fungsi takrif pengguna (UDF) atau pernyataan CASE adalah pendekatan yang berdaya maju, terdapat cara yang lebih elegan untuk mengelak daripada menggunakannya. Salah satu cara ialah menggunakan fungsi DATEADD dan DATEDIFF:
<code class="language-sql">select dateadd(minute, datediff(minute,0,GETDATE()) / 15 * 15, 0)</code>
Di sini, GETDATE() mewakili nilai tarikh dan masa semasa. Fungsi DATEDIFF mengira perbezaan dalam minit antara masa semasa dan tarikh rujukan tetap 0. Kami kemudian membahagikan perbezaan ini dengan 15 dan didarab dengan 15 untuk mendapatkan selang 15 minit yang terdekat. Akhir sekali, fungsi DATEADD menambah selang ini pada tarikh rujukan, menghasilkan nilai masa bulat.
Nota
Kaedah ini sesuai untuk kes di mana hanya minit yang relevan dan saat boleh diabaikan. Disebabkan oleh isu limpahan yang berpotensi, ia boleh mengendalikan tarikh sehingga tahun 5500. Walau bagaimanapun, menggunakan tarikh tertentu (contohnya, "2009-01-01") atau tarikh hari ini sebagai titik rujukan boleh mengatasi had ini.
Contoh
Sebagai contoh, menggunakan kaedah di atas untuk membundarkan cap masa seperti "00:08:00" kepada selang 15 minit yang terdekat akan menghasilkan "00:15:00". Begitu juga, "00:07:00" akan dibundarkan kepada "00:00:00".
Atas ialah kandungan terperinci Bagaimana untuk Membundarkan Nilai Masa HH:MM kepada Selang 15 Minit Terdekat dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!