相关疑难解决方法(0)

如何在Doctrine2 Query Builder中使用'interval'

在我的Symfony2存储库中,我想从调度表中获取已经启动但尚未完成的对象.对象内的区间应该是"未完成",应该作为变量传递.

使用纯SQL,它的工作方式如下:

SELECT * FROM slots rbs 
  WHERE rbs.rundate = '2012-08-13' 
  AND rbs.runtime <= '11:05:00' 
  AND '11:05:00' <= rbs.runtime + interval '300 seconds'
  ORDER BY rbs.rundate DESC, rbs.runtime DESC
Run Code Online (Sandbox Code Playgroud)

我可以使用DQL/Query Builder实现相同的功能吗?

这是我到目前为止:

$qb = $this->createQueryBuilder('rbs');
$qb->where(
    $qb->expr()->andX(
         $qb->expr()->eq('rbs.rundate', ':date'),
         $qb->expr()->lte('rbs.runtime', ':time'),
         'rbs.runtime + interval 300 seconds >= :time'
        )
    )
  ->orderBy('rbs.rundate', 'DESC')
  ->addOrderBy('rbs.runtime', 'DESC')
  ->setParameter('date', date('Y-m-d'))
  ->setParameter('time', date('H:i:s'))
Run Code Online (Sandbox Code Playgroud)

但是这会返回以下错误:

[Doctrine\ORM\Query\QueryException]                                                 
[Syntax Error] line 0, col 139: Error: Expected =, <, <=, <>, >, >=, !=, got '300'
Run Code Online (Sandbox Code Playgroud)

我发现Doctrine2/DQL 不支持'interval',这也在 …

php postgresql query-builder symfony doctrine-orm

9
推荐指数
3
解决办法
1万
查看次数

如何让 Doctrine_Expression(学说 1.2)尝试获得最后 7 天

我尝试使用学说 1.2 进行此查询:

 $q->where('date > ?', 
             new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)'));
Run Code Online (Sandbox Code Playgroud)

但它没有给我任何结果。

任何的想法 ?

谢谢

php mysql doctrine-1.2

2
推荐指数
1
解决办法
2958
查看次数

选择从月初到当前日期的记录

我正在尝试选择在当月开始和当天之间添加到数据库的记录 - 我或多或少知道如何从当天和特定时间段内获取记录 - 但我该怎么做得到它所以它从当前日历月的开始?

select sql-server-2005 dateadd datepart

1
推荐指数
1
解决办法
6121
查看次数