Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Julat Tarikh dalam SQL Server 2008?

Bagaimana untuk Menjana Julat Tarikh dalam SQL Server 2008?

Susan Sarandon
Susan Sarandonasal
2025-01-15 08:46:41636semak imbas

How to Generate Date Ranges in SQL Server 2008?

Jana julat tarikh menggunakan SQL

Dalam SQL Server 2008, mengisi jadual untuk mengandungi julat tarikh antara dua tarikh yang ditentukan merupakan satu cabaran untuk pentadbir pangkalan data. Sebagai tindak balas kepada masalah ini, penyelesaian praktikal untuk SQL Server 2008 disediakan di bawah.

Pertanyaan ini menggunakan jadual yang mengandungi jujukan nombor untuk menjana tarikh. Baris pertama pertanyaan mengisytiharkan dua pembolehubah, @StartDate dan @EndDate, masing-masing mewakili permulaan dan akhir julat tarikh yang dikehendaki.

Subkueri di dalam kurungan menjana urutan nombor daripada 1 hingga bilangan baris dalam jadual sys.columns. Subkueri ini bertindak sebagai pengganti jadual nombor atau jadual kiraan. Nombor yang terhasil disimpan dalam lajur nbr.

Klausa WHERE menapis nombor untuk memasukkan hanya nombor yang berada dalam julat tarikh yang ditentukan. Secara khusus, ia menyemak sama ada nbr - 1 adalah kurang daripada atau sama dengan perbezaan antara tarikh mula dan tarikh tamat. Memandangkan penomboran baris bermula pada 1, pengiraan ini dilaraskan.

Untuk setiap nombor yang layak, pertanyaan menggunakan fungsi DATEADD untuk menambah @StartDate dengan nilai nbr - 1. Hasilnya ialah jadual yang mengandungi semua tarikh dari tarikh mula hingga tarikh tamat, satu baris untuk setiap hari.

Alternatif untuk menggunakan jadual pengiraan

Jika jadual kiraan tersedia, ia boleh menggantikan subkueri dalam pertanyaan asal, menghasilkan penyelesaian yang lebih cekap dan ringkas. Jadual kiraan mengandungi satu siri nombor berturut-turut, menjadikannya sumber yang ideal untuk menjana julat tarikh. Pertanyaan menggunakan jadual kiraan disediakan dalam jawapan untuk rujukan.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Julat Tarikh dalam SQL Server 2008?. 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