Menjana Urutan Tarikh dalam T-SQL: Kaedah Cekap
Artikel ini meneroka teknik yang cekap untuk mencipta satu siri tarikh berturut-turut dalam julat tertentu menggunakan T-SQL, serasi dengan SQL Server versi 2005 dan lebih baru. Walaupun gelung WHILE
ialah pendekatan yang mungkin, ia mungkin kurang cekap untuk julat tarikh yang lebih besar. Kaedah unggul menggunakan spt_values
jadual sistem.
Untuk julat tarikh sehingga 2047 hari, pertanyaan T-SQL berikut menyediakan penyelesaian yang berkesan:
<code class="language-sql">DECLARE @startDate DATETIME, @endDate DATETIME; SET @startDate = GETDATE(); SET @endDate = DATEADD(day, 100, @startDate); SELECT DATEADD(day, number, @startDate) AS IncrementalDate FROM (SELECT number FROM master.dbo.spt_values WHERE [type] = 'P') AS NumberSequence WHERE DATEADD(day, number, @startDate) < @endDate;</code>
Pertanyaan ini memanfaatkan jujukan berangka dalam spt_values
untuk menjana siri tarikh. Ia menambah setiap nombor dalam urutan pada @startDate
, dengan berkesan mencipta tarikh kenaikan. Klausa WHERE
memastikan tarikh yang dijana berada dalam julat yang dikehendaki, ditakrifkan oleh @startDate
dan @endDate
. Pendekatan ini mengelakkan had prestasi yang sering dikaitkan dengan kaedah gelung WHILE
berulang.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Siri Penambahan Tarikh dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!