Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menjana Siri Tarikh Tepat Sepanjang Berbilang Tahun dalam PostgreSQL?

Bagaimanakah Saya Boleh Menjana Siri Tarikh Tepat Sepanjang Berbilang Tahun dalam PostgreSQL?

Barbara Streisand
Lepaskan: 2025-01-21 17:01:09
asal
194 orang telah melayarinya

How Can I Generate Accurate Date Series Across Multiple Years in PostgreSQL?

Jana dengan tepat siri tarikh PostgreSQL yang merangkumi beberapa tahun

Fungsi generate_series berguna apabila menjana jujukan tarikh antara dua tarikh tertentu dalam PostgreSQL. Walau bagaimanapun, seperti yang ditunjukkan oleh pertanyaan di bawah, ia mungkin tidak memberikan hasil yang tepat apabila tarikh menjangkau tahun yang berbeza:

select date '2004-03-07' + j - i as AllDate 
from generate_series(0, extract(doy from date '2004-03-07')::int - 1) as i,
     generate_series(0, extract(doy from date '2004-08-16')::int - 1) as j
Salin selepas log masuk

Untuk menyelesaikan masalah ini, penyelesaian yang lebih tepat boleh digunakan, yang melibatkan penukaran cap masa:

SELECT date_trunc('day', dd):: date
FROM generate_series
        ( '2007-02-01'::timestamp 
        , '2008-04-01'::timestamp
        , '1 day'::interval) dd
        ;
Salin selepas log masuk

Dalam pertanyaan ini, fungsi date_trunc digunakan untuk mengekstrak bahagian tarikh daripada cap waktu yang dijana, memastikan hasil yang tepat walaupun tarikh menjangkau tahun yang berbeza. Fungsi generate_series mencipta jujukan cap masa dengan jarak satu hari, dan kemudian fungsi date_trunc menukar cap masa ini kembali kepada tarikh, sekali gus menyediakan jujukan tarikh yang boleh dipercayai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Siri Tarikh Tepat Sepanjang Berbilang Tahun dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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