Bundarkan nilai masa tarikh kepada minit atau jam terdekat dalam T-SQL
T-SQL menyediakan fungsi terbina dalam untuk membundarkan nilai masa tarikh kepada minit atau jam terdekat. Nilai bulat adalah bernilai untuk analisis data dan penjanaan laporan.
Untuk membundarkan nilai masa tarikh kepada minit terdekat, gunakan formula berikut:
<code class="language-sql">dateadd(mi, datediff(mi, 0, @dt), 0)</code>
Di mana, @dt
mewakili nilai tarikh masa yang hendak dibundarkan.
Contohnya, membundarkan nilai '09-22-2007 15:07:38.850' kepada minit terdekat menghasilkan '2007-09-22 15:07:00.000'.
Untuk membundarkan nilai masa tarikh kepada jam terdekat, gunakan:
<code class="language-sql">dateadd(hour, datediff(hour, 0, @dt), 0)</code>
Formula ini dengan berkesan memotong saat dan minit daripada nilai tarikh masa. Menggunakan contoh yang sama, bundarkan '09-22-2007 15:07:38.850' kepada jam terdekat menghasilkan '2007-09-22 15:00:00.000'.
Selain itu, pembundaran ke atas atau ke bawah boleh dicapai dengan menambah setengah minit atau setengah jam pada nilai masa tarikh sebelum pemotongan.
Contoh:
<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>
Hasilnya ialah:
<code>2007-09-22 15:08:00.000 2007-09-22 15:00:00.000</code>
Sebelum pengenalan jenis data tarikh dalam SQL Server 2008, teknik yang sama telah digunakan untuk memotong bahagian jam, minit dan saat bagi nilai datetime untuk mendapatkan tarikh sahaja. Idea ini adalah untuk menentukan bilangan hari antara tarikh tarikh dan titik masa tetap (0, bermakna 1900-01-01 00:00:00.000). Dengan menambahkan bilangan hari ini kepada titik masa yang tetap, anda mendapat tarikh asal dengan masa yang ditetapkan kepada 00:00:00.000.
Atas ialah kandungan terperinci Bagaimana untuk Membundarkan Nilai DateTime kepada Minit atau Jam Terdekat dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!