0

まだ終了していないイベントを取得したい。私の問題は、startTimeDateTimeであり、durationIntegerであることです。

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

このコード:

$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
4

1 に答える 1

0

日付に整数を追加することはできません。PHP/Doctrine は整数をどのように解釈すべきですか? 日、時間、分、... ?

MySQl には DATE と TIME を処理する関数がいくつか用意されており、整数が日数の場合に必要な DATE_ADD など、DQL 言語で使用できる関数もあります。Doctrineのドキュメントを見てください

また、整数が秒単位の場合、DQL には実装されていないため、「ネイティブ SQL クエリ」を作成し、ADDTIMEなどの MySQL 関数を使用する必要があります。

また、DQL 用の TIME_ADD 関数を作成したい場合は、独自の DQL 関数の作成方法を説明するこの記事をお読みください。

于 2012-04-24T13:32:57.670 に答える