use*_*242 3 postgresql plpgsql array
我正在尝试声明一个日期数组。
我试过这个:
DECLARE
dateVal DATE[] := ['2018-01-01','2018-02-01'];
Run Code Online (Sandbox Code Playgroud)
我得到:
ERROR: syntax error at or near "["
Run Code Online (Sandbox Code Playgroud)
我如何正确声明它?
您可以使用 ARRAY 关键字:
create table tbl (dateval date[]);
insert into tbl values(array ['20180101','20180102'::date]);
Run Code Online (Sandbox Code Playgroud)
或者在代码块中:
do $$
declare
dateval date[];
begin
dateval := array ['20180101','20180102'::date];
end;
$$;
Run Code Online (Sandbox Code Playgroud)
或者将表达式转换为日期数组。
do $$
declare
dateval date[];
begin
dateval := '{2015-4-12, 2015-4-19}'::date[];
end;
$$;
Run Code Online (Sandbox Code Playgroud)
db<>在这里摆弄
如果变量在声明时已知,则在声明时对其进行赋值。否则它会用 NULL 初始化,并且您需要另一个语句来分配它。代码和性能的一点浪费。
DO
$$
DECLARE
dateval date[] := '{2015-4-12, 2015-4-19}';
BEGIN
-- do something
END
$$;
Run Code Online (Sandbox Code Playgroud)
您只需要数组文字 或ARRAY构造函数的正确语法。
上面的字符串文字不需要显式转换,因为类型是在赋值中隐式定义的。
有关的:
归档时间: |
|
查看次数: |
29763 次 |
最近记录: |