投射到查询生成器中
Cast into a querybuilder
我有一个这样的查询生成器:
->andWhere('i.createdAt LIKE :date')
->setParameter('date', $date.'%')
字段 created_at 是一个 DateTime,我的 $date 是一个字符串。
有没有办法将我的 created_at 转换为字符串?
我已经试过了:
->andWhere('i.createdAt::text LIKE :date')
控制台:
.... has no field or association named createdAt::text
或:
->andWhere('to_char(i.createdAt) LIKE :date')
控制台:
[Syntax Error] line 0, col 208: Error: Expected known function, got 'to_char'
或
[Syntax Error] line 0, col 208: Error: Expected known function, got 'cast'
我正在使用 Symfony 2.6 和 postgreSQL。
谢谢你:)
将日期格式化为字符串,如下所示:
$date->format('Y-m-d H:i:s')
或者省略日期和时间,因为它是 LIKE 查询
$date->format('Y-m-') . '%'
考虑使用起点和终点之间的日期进行查询:
$nextMonth = clone $date;
$nextMonth->modify('+1 month');
然后你可以做大于或等于第一个日期和小于或等于结束日期
谢谢,这是个好主意。
$startInterval = \DateTime::createFromFormat('Y-m', $date);
$endInterval = clone $startInterval;
$endInterval->modify('+1 month');
这样更好!
->andWhere('i.createdAt > :startInterval')
->andWhere('i.createdAt < :endInterval')
->setParameter('startInterval', $startInterval)
->setParameter('endInterval', $endInterval)
我有一个这样的查询生成器:
->andWhere('i.createdAt LIKE :date')
->setParameter('date', $date.'%')
字段 created_at 是一个 DateTime,我的 $date 是一个字符串。 有没有办法将我的 created_at 转换为字符串?
我已经试过了:
->andWhere('i.createdAt::text LIKE :date')
控制台:
.... has no field or association named createdAt::text
或:
->andWhere('to_char(i.createdAt) LIKE :date')
控制台:
[Syntax Error] line 0, col 208: Error: Expected known function, got 'to_char'
或
[Syntax Error] line 0, col 208: Error: Expected known function, got 'cast'
我正在使用 Symfony 2.6 和 postgreSQL。
谢谢你:)
将日期格式化为字符串,如下所示:
$date->format('Y-m-d H:i:s')
或者省略日期和时间,因为它是 LIKE 查询
$date->format('Y-m-') . '%'
考虑使用起点和终点之间的日期进行查询:
$nextMonth = clone $date;
$nextMonth->modify('+1 month');
然后你可以做大于或等于第一个日期和小于或等于结束日期
谢谢,这是个好主意。
$startInterval = \DateTime::createFromFormat('Y-m', $date);
$endInterval = clone $startInterval;
$endInterval->modify('+1 month');
这样更好!
->andWhere('i.createdAt > :startInterval')
->andWhere('i.createdAt < :endInterval')
->setParameter('startInterval', $startInterval)
->setParameter('endInterval', $endInterval)