Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menjana Julat Tarikh dalam SQL?
Apabila membina pertanyaan SQL, selalunya perlu bekerja dengan julat tarikh. Untuk memenuhi keperluan ini, SQL menyertakan fungsi untuk menjana jujukan tarikh. Mari terokai cara menjana julat tarikh untuk membantu dalam pelaksanaan pertanyaan anda.
Satu senario biasa ialah menjana jujukan tarikh yang mewakili tahun lepas. Untuk mencapai ini menggunakan SQL tulen, anda boleh menggunakan pertanyaan seperti berikut:
SELECT TRUNC(SYSDATE - ROWNUM) dt FROM DUAL CONNECT BY ROWNUM < 366
Pertanyaan ini menggunakan jadual DUAL Oracle, jadual dengan satu baris dan satu lajur, yang bertindak sebagai pemegang tempat untuk menjana urutan. Klausa CONNECT BY mendayakan pelaksanaan pertanyaan rekursif, mencipta urutan hari dengan mengurangkan SYSDATE (tarikh sistem semasa). Lajur pseudo ROWNUM menyediakan kiraan lelaran dan menyatakan < 366 menjana julat 365 hari (ditambah satu hari tambahan untuk mengambil kira tahun lompat).
Sebagai alternatif, anda boleh menjana offset hari dan bukannya tarikh penuh dan gunakannya pada parameter tarikh anda:
SELECT SYSDATE - val FROM (SELECT 0 + LEVEL - 1 val FROM DUAL CONNECT BY LEVEL < 366)
Pertanyaan ini menggunakan lajur pseudo LEVEL untuk menjana jujukan offset hari, yang boleh digabungkan dengan SYSDATE untuk menghasilkan julat tarikh.
Ingat untuk mempertimbangkan sintaks dan ciri khusus pangkalan data anda apabila melaksanakan penyelesaian ini untuk memastikan keserasian dan kecekapan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Julat Tarikh dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!