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
Lepaskan: 2025-01-10 14:09:41
asal
721 orang telah melayarinya

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

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

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!

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