Php 将时间戳类型与pg_prepare一起使用

Php 将时间戳类型与pg_prepare一起使用,php,postgresql,prepared-statement,Php,Postgresql,Prepared Statement,运行以下代码: $preCallMatch = pg_prepare($dbcp, 'callMatch', "SELECT duration FROM voip_calls WHERE system_id = $1 AND call_start =&

运行以下代码:

$preCallMatch = pg_prepare($dbcp, 'callMatch',
                            "SELECT duration 
                               FROM voip_calls 
                              WHERE system_id = $1 
                                AND call_start => $2                                   
                                AND call_start <= $3
                                AND destination = $4");
我曾尝试过以这种方式铸造2美元,但运气不佳:

$preCallMatch = pg_prepare($dbcp, 'callMatch',
                            "SELECT duration 
                               FROM voip_calls 
                              WHERE system_id = $1 
                                AND call_start => CAST ( $2 AS TIMESTAMP )
                                AND call_start <= CAST ( $3 AS TIMESTAMP )
                                AND destination = $4");


Warning: pg_prepare(): Query failed: ERROR:  operator does not exist: timestamp without time zone => timestamp without time zone
HINT:  No operator matches the given name and argument type(s). You may need to add explicit type casts. in /home/www/dinesh/UPSReconcileZeroSecondCalls.php on line 38
关于我做错了什么有什么建议吗?注意,PDO或MDPD现在不是一个选项

软件版本:

ii  php5                            5.2.6.dfsg.1-1+lenny3      server-side, HTML-embedded scripting languag
ii  libapache2-mod-php5             5.2.6.dfsg.1-1+lenny3      server-side, HTML-embedded scripting languag
ii  php5-pgsql                      5.2.6.dfsg.1-1+lenny3      PostgreSQL module for php5
ii  libpq5                          8.3.8-0lenny1              PostgreSQL C client library
postmaster (PostgreSQL) 8.1.4

可能是您的=>运算符导致了问题-请尝试>=替换

另外,作为一个提示,我发现编写$2::timestamp比将$2转换为timestamp更容易——这是一种特定于PostgreSQL的语法,但对我来说读起来更好,而且不太容易键入;-

原来是操作员。这样做很好:

$preCallMatch = pg_prepare($dbcp, 'callMatch',
                            "SELECT duration 
                               FROM voip_calls 
                              WHERE system_id = $1 
                                AND call_start BETWEEN $2 AND $3
                                AND destination = $4");
ii  php5                            5.2.6.dfsg.1-1+lenny3      server-side, HTML-embedded scripting languag
ii  libapache2-mod-php5             5.2.6.dfsg.1-1+lenny3      server-side, HTML-embedded scripting languag
ii  php5-pgsql                      5.2.6.dfsg.1-1+lenny3      PostgreSQL module for php5
ii  libpq5                          8.3.8-0lenny1              PostgreSQL C client library
postmaster (PostgreSQL) 8.1.4
$preCallMatch = pg_prepare($dbcp, 'callMatch',
                            "SELECT duration 
                               FROM voip_calls 
                              WHERE system_id = $1 
                                AND call_start BETWEEN $2 AND $3
                                AND destination = $4");