我对日期数组的迭代有问题: 它们的数组值加载了另一个函数。
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];
),但没有成功。
有谁知道如何解决它或我做错了什么?谢谢。
答案 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;