Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Siri Tarikh dalam Amazon Redshift Tanpa generate_series()?

Bagaimana untuk Menjana Siri Tarikh dalam Amazon Redshift Tanpa generate_series()?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 14:55:09479semak imbas

How to Generate Date Series in Amazon Redshift Without generate_series()?

Menjana Siri dalam Redshift

Amazon Redshift adalah berdasarkan versi lama PostgreSQL (8.0.2) yang tidak mempunyai sokongan untuk generate_series( ) berfungsi apabila berurusan dengan cap masa. Percubaan untuk menggunakan fungsi dengan tarikh, seperti:

select * from generate_series(date('2008-10-01'),date('2008-10-10 00:00:00'),1)

akan mengakibatkan ralat.

Penyelesaian

Walaupun kekurangan arahan langsung sokongan untuk generate_series() dengan cap masa, terdapat beberapa penyelesaian:

1. Aritmetik Tarikh Semasa:

SELECT current_date + (n || ' days')::interval
from generate_series (1, 30) n

Pendekatan ini, yang berfungsi dalam PostgreSQL 8.3 dan lebih baru, menggunakan aritmetik tarikh ringkas untuk menjana satu siri tarikh.

2. Jadual Integer:

Buat jadual integer yang boleh digunakan untuk aritmetik tarikh:

create table integers (
  n integer primary key
);

Isi jadual dan gunakannya untuk pengiraan tarikh:

select (current_date + n)
from integers
where n < 31;

Nota: Redshift tidak menyokong jenis data selang, jadi perkara di atas penyelesaian mungkin tidak tersedia dalam semua kes.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Siri Tarikh dalam Amazon Redshift Tanpa generate_series()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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