You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用PostgreSQL存储过程时出现to_DATE语法错误的求助

PostgreSQL存储过程调用语法错误解决指南

问题重现

调用存储过程代码:

CALL qis_pk_test.qis_pk_testBill(
     to_DATE('03-02-2023','DD-MM-YYYY')::timestamp without time zone, 
    to_DATE('03-02-2023','DD-MM-YYYY')::timestamp without time zone 
);
fetch all in qis_pk_test.qis_pk_testBill;

触发错误:

ERROR:  syntax error at or near "to_DATE"
LINE 2:      to_DATE('03-02-2023','DD-MM-YYYY'')::timestamp without ...
             ^
SQL state: 42601
Character: 51

尝试将单引号转义为双单引号后问题依旧:

CALL qis_pk_test.qis_pk_testBill(
     to_DATE(''03-02-2023'',''DD-MM-YYYY'')::timestamp without time zone, 
    to_DATE(''03-02-2023'',''DD-MM-YYYY'')::timestamp without time zone 
);
fetch all in qis_pk_test.qis_pk_testBill;

解决步骤

1. 修正单引号错误

错误提示里的'DD-MM-YYYY'')显示你多输入了一个单引号。直接在SQL客户端执行CALL语句时不需要转义单引号,用普通单引号即可,修正后的基础调用代码:

CALL qis_pk_test.qis_pk_testBill(
    to_date('03-02-2023', 'DD-MM-YYYY')::timestamp without time zone,
    to_date('03-02-2023', 'DD-MM-YYYY')::timestamp without time zone
);

2. 简化日期转换逻辑

PostgreSQL支持直接将符合格式的字符串转为timestamp,无需先转date再转timestamp,可简化写法:

CALL qis_pk_test.qis_pk_testBill(
    '03-02-2023'::timestamp without time zone,
    '03-02-2023'::timestamp without time zone
);

或者用to_timestamp直接生成timestamp类型:

CALL qis_pk_test.qis_pk_testBill(
    to_timestamp('03-02-2023', 'DD-MM-YYYY'),
    to_timestamp('03-02-2023', 'DD-MM-YYYY')
);

3. 匹配存储过程参数类型

如果上述写法仍报错,检查存储过程qis_pk_test.qis_pk_testBill的定义:

  • 如果参数是date类型,直接传to_date('03-02-2023', 'DD-MM-YYYY')即可,无需转换为timestamp;
  • 如果参数是timestamp with time zone,需调整转换逻辑。

4. 修正游标调用方式

fetch all in qis_pk_test.qis_pk_testBill仅当存储过程返回同名游标时有效。如果存储过程通过OUT参数返回游标,需先声明游标变量再调用:

-- 在PL/pgSQL块中执行
DECLARE cur refcursor;
BEGIN
    CALL qis_pk_test.qis_pk_testBill('03-02-2023'::timestamp, '03-02-2023'::timestamp, cur);
    FETCH ALL IN cur;
END;

如果在psql客户端执行,可使用INTO子句获取游标:

CALL qis_pk_test.qis_pk_testBill('03-02-2023'::timestamp, '03-02-2023'::timestamp) INTO cur;
FETCH ALL IN cur;

内容的提问来源于stack exchange,提问作者Rooter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:46:04