我需要比較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 –