MonetDB-PHP 带时间戳的参数化查询出错

MonetDB-PHP Error on parameterized query with timestamp

我正在将 MonetDB 与 MonetDB-PHP 库一起使用。

我遵循了以下文档:https://github.com/MonetDB/MonetDB-PHP

一切正常,但如果我为时间戳类型列设置参数,我会收到以下错误:

Error from MonetDB: 42000!Wrong type for argument 1 of function call: char, expected timestamp

例如,

这是有效的:

$result = $connection->Query(<<<EOF
    select
        *
    from
        "cats"
    where
        "name" = ?
        and "weight_kg" > ?
    limit
        10
EOF
, [ "D'artagnan", 5.3 ]);

但这行不通:

$result = $connection->Query(<<<EOF
    select
        *
    from
        "cats"
    where
        "name" = ?
        and "weight_kg" > ?
        and "birthdate" < ?
    limit
        10
EOF
, [ "D'artagnan", 5.3, "2020-02-28 12:37:16" ]);

任何时间戳类型的列都会发生错误,并且仅当将值作为参数传递时才会发生。

我做错了什么?

编辑: 这是我正在使用的实际 table

CREATE TABLE sys.url_data (
    userid varchar(50),
    groupid varchar(50),
    category varchar(50),
    url varchar(1024),
    datetime timestamp
);

“日期时间”是我在查询中使用的列

已部署修复程序。更新到版本 1.1.3timestamp 值必须作为 DateTime 对象传递。

以你的例子 table 看起来像:

$dt = DateTime::createFromFormat("Y-m-d H:i:s", "2020-02-28 12:37:16");

$result = $connection->Query(<<<EOF
    select
        *
    from
        sys.url_data
    where
        datetime > ?
EOF
, [ $dt ]);

也要使用微秒:

$dt = DateTime::createFromFormat("Y-m-d H:i:s.u", "2020-02-28 12:37:16.123456");

还更新了准备好的语句的文档: