Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menjana Siri Masa Antara Tahun Tidak Berturut-turut dalam PostgreSQL?

Bagaimana untuk Menjana Siri Masa Antara Tahun Tidak Berturut-turut dalam PostgreSQL?

Linda Hamilton
Lepaskan: 2025-01-21 16:44:11
asal
328 orang telah melayarinya

How to Generate a Time Series Between Non-Consecutive Years in PostgreSQL?

Menjana Siri Masa Merentasi Tahun Bukan Berturut-turut dalam PostgreSQL

Menjana siri masa yang lengkap antara dua tarikh dalam PostgreSQL memerlukan pertimbangan yang teliti, terutamanya apabila berurusan dengan tarikh yang merangkumi beberapa tahun. Kaedah biasa menggunakan generate_series dengan extract(doy) boleh menghasilkan keputusan yang tidak tepat dalam senario sedemikian.

Pendekatan Lebih Teguh

Penyelesaian unggul memanfaatkan fungsi generate_series PostgreSQL bersama-sama dengan date_trunc dan interval. Teknik ini boleh menjana siri masa merentas mana-mana julat tarikh, tanpa mengira tahun.

Pertanyaan berikut menunjukkan kaedah yang dipertingkatkan ini:

<code class="language-sql">SELECT date_trunc('day', dd)::date
FROM generate_series('2007-02-01'::timestamp, '2008-04-01'::timestamp, '1 day'::interval) dd;</code>
Salin selepas log masuk

Berikut ialah pecahan:

  • generate_series('2007-02-01'::timestamp, '2008-04-01'::timestamp, '1 day'::interval): Ini menjana jujukan cap masa, bertambah satu hari, antara tarikh mula dan tamat yang ditentukan.
  • date_trunc('day', dd): Fungsi ini memotong cap masa ke permulaan setiap hari, mengalih keluar komponen masa.
  • ::date: Ini menghantar cap masa yang terhasil ke date jenis data untuk output yang lebih bersih.

Pendekatan yang diperhalusi ini menawarkan kaedah yang tepat dan boleh dipercayai untuk mencipta siri masa merentas tahun bukan berturut-turut dalam PostgreSQL.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Siri Masa Antara Tahun Tidak Berturut-turut dalam PostgreSQL?. 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