Php 如何在Postgres SQL存储过程函数中传递参数,我的查询是否正确

Php 如何在Postgres SQL存储过程函数中传递参数,我的查询是否正确,php,postgresql,parameter-passing,stored-functions,Php,Postgresql,Parameter Passing,Stored Functions,在PostgresSQL中,我正在努力解决如何将参数传递给存储过程函数的问题。我的问题对吗?I get error是无效的输入语法,输入日期为:“Firstdate”。我缺少什么?请告诉我 CREATE OR REPLACE FUNCTION prisonparam(dvn_cd text, phc_cd text, Firstdate Date, Seconddate Date, To Date) RETURNS table

PostgresSQL中,我正在努力解决如何将参数传递给存储过程函数的问题。我的问题对吗?I get error是无效的输入语法,输入日期为:“Firstdate”。我缺少什么?请告诉我

CREATE OR REPLACE FUNCTION prisonparam(dvn_cd text,
       phc_cd  text,
       Firstdate Date,
       Seconddate Date,
       To Date) 
     RETURNS table (round text,sc bigint,scupto bigint)
     AS $$
     /* query start */
    WITH a
   AS (
       SELECT
        round AS round
       ,Sum(ben_sc) AS SC

       FROM prison_issue
       WHERE (
        DATE BETWEEN 'Firstdate'
            AND 'To'
             )
       AND dvn_cd = 'dvn_cd'
       AND phc_cd = 'phc_cd'

       GROUP BY round ORDER BY round
       )
       ,b
      AS (
     SELECT round AS round_up
     ,Sum(ben_sc) AS SC_up


     FROM prison_issue
     WHERE (
        DATE BETWEEN 'Seconddate'
            AND 'To'
           )
    AND dvn_cd = 'dvn_cd'
    AND phc_cd = 'phc_cd'
    GROUP BY round ORDER BY round
         )
   SELECT b.round_up AS round
  ,coalesce(a.sc, 0) AS SC
  ,coalesce(b.sc_up, 0) AS SCUPTO

  FROM a
  RIGHT JOIN b ON a.round = b.round_up
  /* query end*/
  $$ LANGUAGE sql;

不要重复引用参数

 DATE BETWEEN 'Firstdate'
        AND 'To'
正在尝试使用
'Firstdate'
'to'
作为文本

不要引用它们

 DATE BETWEEN Firstdate
        AND To
或者,如果您必须使用可能有问题的标识符(如
)作为变量,则应将其双引号。但是,如果这样做,则在任何地方都要这样做,包括参数声明列表

 DATE BETWEEN Firstdate
        AND "To"

sir函数创建成功。现在的问题是调用函数代码…include('connection.php');echo$hud='15';echo$phc='80001';echo$Firstdate='2015-08-01';echo$Seconddate='2015-10-31';echo$To='2015-10-31'$dvn_sql=boss函数createderror is ERROR:函数prisonparam(整数、整数、整数、整数、整数)不存在第1行:从prisonparam(1580012015-08-012015-10)中选择*。^提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。请为新主题打开一个新问题