迭代foreach在数组Postgres中包含日期数组

时间:2017-12-12 11:21:25

标签: arrays plpgsql postgresql-9.4

我对日期数组的迭代有问题: 它们的数组值加载了另一个函数。

DECLARE
  i INT;
  array DATE[]; -- values array : '{2017-01-01,2017-02-01,2017-03-01,2017-04-01}'
BEGIN
  FOREACH i IN ARRAY array
      LOOP       
        INSERT INTO table (id, date)
        VALUES (i);
  END LOOP;

Error: the input syntax is not valid for integer: «2016-02-01»

我尝试将声明从i更改为日期,但没有成功,我还尝试将i(日期)分配给数组的第一个值(i = array[1];),但没有成功。

有谁知道如何解决它或我做错了什么?谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,我搜索并找到了解决方案:我把它放在有人感兴趣的地方:

for i in  coalesce(array_lower(array, 1),1)..coalesce(array_upper(array, 1),1) 
    loop
       INSERT INTO table (id, date)
       VALUES (i);
    end loop;