为什么字符串格式的日期在phalcon中不能正确比较?

4zcjmb1e  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(338)

我的日期变量的行为很奇怪!我正在使用phalcon查询生成器从数据库中通过日期范围获取一些记录。我的问题如下:

if(isset($filter['start_date']) && $filter['start_date'] != '' && isset($filter['end_date']) && $filter['end_date'] != ''){
    $queryBuilder->where('e.created_at >= :startDate: AND e.created_at <= :endDate:');
    $parameters = array('startDate' => $filter['start_date'], 'endDate' => $filter['end_date']);
}

$parameters 当我像这样手动输入日期时,它工作得很好,但当我像上面的查询那样使用变量时,它就不工作了:

$parameters = array('startDate' => "2012-10-11", 'endDate' => "2018-10-10");

var_dump($filter['start_date']是字符串(10)“2012-10-11”,对于结束日期var_dump($filter['end_date']是字符串(10)“2018-10-10”
日期数据类型:

`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,

在数据库中,日期以datetime格式存储,如下例所示 2018-11-24 09:05:18

rxztt3cl

rxztt3cl1#

$filter['开始日期']$filter['结束日期']
不应为null/string并与日期格式兼容
如果你能消毒或验证 $filter 在将其绑定到查询生成器之前
希望能对你有所帮助

83qze16e

83qze16e2#

日期必须是字符串表达式 '2012-10-11' 否则,它可能被视为一个数学表达式。

相关问题