代码之家  ›  专栏  ›  技术社区  ›  In0cybe

带有日期数组的数组Postgres中的迭代foreach

  •  0
  • In0cybe  · 技术社区  · 7 年前

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

    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 = array[1]; )没有成功。

    有人知道如何修复它吗?或者我做错了什么?非常感谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   In0cybe    7 年前

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

    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;