在Redshift 產生系列
Amazon Redshift 基於舊版的PostgreSQL (8.0.2),缺乏對generate_series時的函數。嘗試將函數與日期一起使用,例如:
select * from generate_series(date('2008-10-01'),date('2008-10-10 00:00:00'),1)
將導致錯誤。
解決方法
儘管缺乏直接支援帶有時間戳的generate_series(),有一些解決方法:
1.當前日期算術:
SELECT current_date + (n || ' days')::interval from generate_series (1, 30) n
此方法適用於PostgreSQL 8.3 及更高版本,使用簡單的日期算術產生一系列日期。
2.整數表:
建立可用於日期算術的整數表:
create table integers ( n integer primary key );
填充表並用於計算日期:
select (current_date + n) from integers where n < 31;
注意:Redshift不支援間隔資料類型,因此上述解決方法可能無法在所有情況下都可用。
以上是如何在不使用generate_series()的情況下在Amazon Redshift中產生日期系列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!