【发布时间】:2017-12-12 11:21:24
【问题描述】:
我有一个日期数组的迭代问题: 他们用另一个函数加载的数组的值。
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 更改为 date,但没有成功,我还尝试分配 i(日期)数组的第一个值 (i = array[1];),但没有成功。
有谁知道如何解决它或我做错了什么?谢谢。
【问题讨论】:
-
不要使用字符串:
array[date '2017-01-01', date '2017-02-01', ...] -
我不明白a_horse_whit_no_mane,加载另一个函数的数组是DATE,如何将值更改为无字符串?谢谢
-
错误消息似乎表明您正在使用
'{2017-01-01,2017-02-01,2017-03-01,2017-04-01}'填充该数组 - 但2017-01-01将被视为数字(2017 年减 1 减 1),而不是日期。如果您想要其中的真实日期,请使用适当的日期文字填充它。 -
问题出在函数中是什么让我返回了数组?这是这个功能:stackoverflow.com/questions/47656259/… 非常感谢你 a_horse_whith_no_name
标签: arrays plpgsql postgresql-9.4