2012-04-24 9 views
0

まだ終了していないイベントを取得したいです。 私の問題は、のstartTimeのDateTime期間整数であるということです。DQLクエリでDateTime +整数を追加します。

どうすればこの追加ができますか?

このコード:

$events = $this->getRepository('Event')->createQueryBuilder('e') 
       ->where('e.startTime+e.duration > CURRENT_TIMESTAMP()') 
       ->getQuery(); 
       ->getResult(); 

が私を投げる:あなたがこれまでに整数を追加することはできません

SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: timestamp without time zone + integer 

答えて

0

。 PHP/Doctrineは整数をどのように解釈すべきですか?日、時、分、...?

MySQlにはDATEとTIMEを処理する関数がいくつかあり、そのうちのいくつかはDATE言語のようにDATE_ADDのように使用できます。これは整数が日数の場合に必要なものです! Doctrine documentation

を見て、あなたの整数秒量であれば、あなたがしたい場合、それはあなたが「ネイティブSQLクエリ」を作成して、そのようなADDTIME

としてMySQL関数を使用する必要があるので、DQLに実装されていませんDQL用のTIME_ADD関数を作成します。この記事ではhow to create your own DQL functionsを説明しています。

+0

thx。はい、私の整数は秒単位であり、DATE_ADD()は私にとってはうまくいきません:(そして、私の怠惰は、ネイティブSQL以外の方法があることを願っています – Vivien

+0

私は既にこの問題に遭遇しました。 D – AlterPHP

関連する問題