我的日期变量的行为很奇怪!我正在使用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
2条答案
按热度按时间rxztt3cl1#
$filter['开始日期']$filter['结束日期']
不应为null/string并与日期格式兼容
如果你能消毒或验证
$filter
在将其绑定到查询生成器之前希望能对你有所帮助
83qze16e2#
日期必须是字符串表达式
'2012-10-11'
否则,它可能被视为一个数学表达式。