Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menjana Siri Masa Tepat dalam PostgreSQL Sepanjang Beberapa Tahun?

Bagaimana untuk Menjana Siri Masa Tepat dalam PostgreSQL Sepanjang Beberapa Tahun?

Patricia Arquette
Lepaskan: 2025-01-21 16:57:08
asal
730 orang telah melayarinya

How to Generate Accurate Time Series in PostgreSQL Across Multiple Years?

Jana siri masa yang tepat dalam PostgreSQL merentasi beberapa tahun

Menjana siri masa adalah penting dalam banyak tugas analisis data. Dalam PostgreSQL, fungsi generate_series boleh digunakan untuk mencipta julat tarikh antara dua tarikh tertentu. Walau bagaimanapun, pendekatan standard mungkin gagal apabila tarikh menjangkau beberapa tahun.

Pernyataan Masalah

Fungsi ini mungkin menghasilkan keputusan yang salah jika generate_series tarikh mula dan tamat dalam pertanyaan adalah dari tahun yang berbeza. Contohnya, apabila cuba menjana jujukan antara '2007-02-01' dan '2008-04-01', pertanyaan standard mungkin menghasilkan set tarikh yang tidak sah.

Penyelesaian

Untuk menyelesaikan masalah ini, kaedah yang lebih baik diperlukan. Daripada menukar tarikh kepada integer (seperti dalam pertanyaan awal), kita boleh menggunakan cap masa secara langsung. Ini membolehkan kami mengambil kira peralihan antara tahun dengan tepat.

Pertanyaan yang diubah suai berikut menjana siri masa antara mana-mana dua tarikh tertentu, tidak kira sama ada tarikh tersebut tergolong dalam tahun yang sama:

<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

Dengan menukar tarikh kepada cap masa, kami memastikan pengiraan perbezaan masa dan penciptaan siri masa yang berikutnya mengambil kira perubahan dalam tahun. Ini akan menjana set tarikh yang betul untuk julat yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Siri Masa Tepat dalam PostgreSQL Sepanjang Beberapa Tahun?. 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