Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membundarkan Nilai Masa HH:MM kepada 15 Minit Terdekat dalam T-SQL?

Bagaimana untuk Membundarkan Nilai Masa HH:MM kepada 15 Minit Terdekat dalam T-SQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-10 14:09:41783semak imbas

How to Round HH:MM Time Values to the Nearest 15 Minutes in T-SQL?

Bundarkan nilai HH:MM ​​ke selang 15 minit terdekat dalam T-SQL

Membundar kepada selang tertentu ialah tugas biasa apabila bekerja dengan nilai masa. Artikel ini meneroka kaedah T-SQL yang elegan untuk membundarkan nilai HH:MM ke selang 15 minit terdekat tanpa bergantung pada fungsi takrif pengguna (UDF) atau pernyataan kes.

Penyelesaian:

Kunci kepada teknik ini ialah menggunakan fungsi datediff() dan dateadd() untuk memanipulasi komponen tarikh sambil mengabaikan detik. Kita boleh menentukan bilangan minit berlalu dengan mengira perbezaan antara masa tarikh input dan tarikh tetap dengan komponen masa 00:00:00.

Nilai ini kemudiannya boleh dibahagikan dengan 15 untuk mendapatkan bilangan selang 15 minit. Hasilnya didarab dengan 15 dan ditambah kembali ke tarikh tetap menggunakan dateadd() untuk memberikan masa bulat yang dibundarkan kepada selang 15 minit yang terdekat.

Contoh pertanyaan:

Pertimbangkan contoh pertanyaan berikut:

<code class="language-sql">SELECT dateadd(minute, datediff(minute, '2023-01-01', GETDATE()) / 15 * 15, '2023-01-01') AS RoundedTime</code>

Menggantikan GETDATE() dengan nilai datetime yang anda inginkan akan mengembalikan nilai HH:MM bulat seperti ini:

<code>| 输入时间 | 舍入时间 |
|---|---|
| 00:08:00 | 00:15:00 |
| 00:07:00 | 00:00:00 |
| 01:59:00 | 02:00:00 |</code>

Nota:

Pendekatan ini memastikan gelagat pembundaran yang konsisten tanpa mengira nilai masa input. Ia juga mengelakkan kemungkinan ralat limpahan apabila berurusan dengan julat tarikh yang lebih besar. Walaupun ia tidak memerlukan pelakon, tarikh tetap yang sesuai dengan komponen masa 00:00:00 mesti digunakan sebagai asas untuk pengiraan.

Atas ialah kandungan terperinci Bagaimana untuk Membundarkan Nilai Masa HH:MM kepada 15 Minit Terdekat dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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