我的日期变量表现得很奇怪!我正在使用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']是string(10)“ 2018-10-10”
日期数据类型:
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
在数据库中,日期以日期时间格式存储,如下例所示
2018-11-24 09:05:18
答案 0 :(得分:0)
您的日期必须为字符串表达式'2012-10-11'
,否则可能会被视为数学表达式。
答案 1 :(得分:0)
$ filter ['开始日期'] $ filter ['end_date']
应为NOT NULL / STRING并与DATE FORMAT兼容
最好在将$filter
绑定到查询生成器之前先对其进行清理或验证
希望它可以为您提供帮助