我想要做的是在给定月份的数据库中获取所有日期。“where”子句只有月份
我尝试了多种解决方案,但都没有工作。我以教条(有点)做黑魔法而告终。
这是我最后一次尝试:
public function getNbCongesByMonth($month){
$listOfEntities = $this->createQueryBuilder('e')
->select('count(e) as nb, SUBSTRING(e.cngDateDebut, 6, 2) as day')
->where('day = :month')
->setParameter('month', $month)
->getQuery()
->getResult();
return $listOfEntities;
}
请求应该返回数据库“Conges”的量精确的一个月。
有了这个请求,我得到这个错误:
An exception occurred while executing 'SELECT count(c0_.CNG_ID) AS sclr0, SUBSTRING(c0_.CNG_DATE_DEBUT FROM 6 FOR 2) AS sclr1 FROM Conges c0_ WHERE sclr1 = ?' with params ["5"]:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sclr1' in 'where clause'
我没有任何想法如何做到这一点了,所以如果有人有一个解决方案,将是真棒。
在此先感谢。
你能解释为什么downvote?我是新来的,我做错了什么? –
我猜cngDateDebut是一个日期时间,因此您可以只与另一个DateTime对象进行比较,而不是与一个字符串,这将永远不会工作 – Nickolaus
这样的查询是不可能的,你不能使用列别名)在where子句中,从不。这是因为在任何SQL数据库引擎中where子句都是在select子句之前处理的。我建议打开新的questiton,在那里你把你的数据库模型,并把例子你想获得什么数据,也许有人可以给你写一个查询。 – Miro