我需要比较DATETIME中的DATE格式。php zf2 select SQL语句中的where子句
之前ZF 2.3.5,下面的代码工作正常:
$select->where('DATE(arrival_date) <= DATE(NOW())');
$select->where('DATE(departure_date) >= DATE(NOW())');
$select->where('enable = true');
随着ZF 2.4.2+它不工作了,并产生以下错误:
不能继承previously-从接口Zend \ Db \ Sql \ Predicate \ PredicateInterface继承或覆盖常量TYPE_IDENTIFIER
我试过以下(没有错误)。问题是“arrival_date”是DATETIME格式,我只需要与DATE进行比较。
$where = new Zend\Db\Sql\Where();
$where->lessThanOrEqualTo('arrival_date', date('Y-m-d'));
$where->greaterThanOrEqualTo('arrival_date', date('Y-m-d'));
$where->equalTo('enable', true);
$select->where($where);
理想的情况下,该代码应工作,但它并不:
$select->where(new Zend\Db\Sql\Predicate\Expression('DATE(arrival_time) <= ?', 'DATE(NOW())'));
我输了,什么想法?
适合我。你确定你已经提到了业务的所有细节吗? – akond
也许我使用的是PHP的版本:5.3.28 – David
很适合使用PHP 5.6 –