2

テーブルに日付用のフィールドがありますが、日、年、月のすべてが含まれています。現在の月と等しい月を持つレコードのみを取得するクエリを作成できますか? 私がすることができます:

$today = new \DateTime();
$month = $today->format('m');

$cat = $em->getRepository('EMBudgetTrackerBundle:Expense')->find(1);   
$ex_date = $cat->getDate();

$month と $ex_date を比較しますが、何らかのクエリを記述できますか? このようなもの:

public function getExpensesByMonth($month)
{
    $q = $this->createQueryBuilder('e');

    $q->select('e')
      ->where('e.date = :date')
      ->setParameter('date', $month);

    return $q->getQuery()->getResult();
}

前もって感謝します!:)

4

1 に答える 1

2

データベース列が DateTime 形式の場合、クエリで DateTime オブジェクトを使用できます。私の知る限り、時間範囲のクエリしかできません。

public function getExpensesByMonth($beginning, $end)
{
    $q = $this->createQueryBuilder('e');

    $q->select('e')
      ->where('e.date > :beginning')
      ->andWhere('e.date < :end')
      ->setParameter('beginning', $beginning)
      ->setParameter('end', $end);

    return $q->getQuery()->getResult();
}
于 2013-01-29T07:43:16.043 に答える