2014-06-11 93 views
0

我正在寻找合适的zf2语法来从数据库中选择时间戳/时间范围。我知道如何发表声明。然而似乎GREATERTHAN()和每种不超过()不与时间戳/日期工作:zf2 db sql where datetime before two we ago

where = new Where(); 
$where->lessThan("datecolumn",$vardate); 

我要选择2个多小时之前的所有记录。所以什么是正确的方式来选择日期与Zend框架2?

THX,我真的很感谢你的帮助

回答

3

也能正常工作(只是一个示例) -

$select = new Select('album'); 

$created = date('Y-m-d H:i:s', strtotime("-2 hours")); 

$where = new Where(); 
$where->lessThanOrEqualTo('created', $created); 
$select->where($where); 

$resultSet = $this->tableGateway->selectWith($select); 
0

尝试这样的事情在你的映射器的方法:

$selectRecords = $this->tableGateway->getSql()->select(); 
$selectRecords->columns(array('id')) 
       ->where->greaterThanOrEqualTo('dateColumn', $startDate) 
        ->lessThanOrEqualTo('dateColumn', $endDate) 

; $ resultSet = $ this-> tableGateway-> selectWith($ selectRecords);

+0

同样的问题...不使用日期! – Manuel

+0

它可以按照预期使用日期,日期时间和时间戳。请检查'dateColumn','$ startDate'和'$ endDate'的日期格式。您需要日期值小于2小时的记录,因此您的专栏必须是日期时间?如果是,那么格式必须是'2014-05-06 10:20:30' –

+0

对不起,我的意思是'datecolumn'和'$ vardate'。 –