在DQL中查询表以获取过去一周创建的记录

时间:2011-07-05 11:58:33

标签: php mysql zend-framework timestamp doctrine-1.2

我正在尝试在Doctrine中编写一个查询,该查询将返回在特定天数内添加的记录,我在查询中有这一行但是没有按预期工作:

$q->andWhere('g.date_added >= ?', array(strtotime('-'.$recent_interval.' day')));

date_added是一个mySQL时间戳。

recent_interval是天数。

我在Zend Framework 1.11.7中使用Doctrine-1.2.4

感谢帮助。

2 个答案:

答案 0 :(得分:3)

MySQL时间戳的格式为YYYY-MM-DD HH:MM:SS。您将其与 UNIX时间戳进行比较,后者是从strtotime()返回的数字。

您需要首先将UNIX时间戳转换为MySQL时间戳,以使其正常工作。

要格式化UNIX时间戳,可以使用PHP date()函数。格式为Y-m-d H:i:s

示例:

$compare = date('Y-m-d H:i:s', strtotime('-'.$recent_interval.' day'));
$q->andWhere('g.date_added >= ?', array($compare));

答案 1 :(得分:1)

您忘记将数组更改为Doctrine理解的内容:

以下说明您该怎么做:

  

- > andWhere('g.date_added> =?',日期('Y-m-d',strtotime(“ - 2周”)))