Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带addOrderBY的Doctrine sql函数_Php_Sql_Symfony_Doctrine Orm_Doctrine - Fatal编程技术网

Php 带addOrderBY的Doctrine sql函数

Php 带addOrderBY的Doctrine sql函数,php,sql,symfony,doctrine-orm,doctrine,Php,Sql,Symfony,Doctrine Orm,Doctrine,我正在使用doctrine querybuilder,我需要在查询中包含->addOrderBy 所以一开始我有这个 $qb->addOrderBy('a.weighting', 'DESC'); 这很好,但没有带来预期的结果,我回到绘图板并创建了新的查询,按零件排序应该如下所示: order by DATE_FORMAT(published_at, '%Y/%m/%d') DESC 我试图将其翻译成Doctrine queryBuilder,但它不起作用,我可能做错了什么: 我的按

我正在使用doctrine querybuilder,我需要在查询中包含->addOrderBy

所以一开始我有这个

$qb->addOrderBy('a.weighting', 'DESC');
这很好,但没有带来预期的结果,我回到绘图板并创建了新的查询,按零件排序应该如下所示:

order by  DATE_FORMAT(published_at, '%Y/%m/%d') DESC
我试图将其翻译成Doctrine queryBuilder,但它不起作用,我可能做错了什么:

我的按查询部分翻译的订单:

$qb->addOrderBy('DATE_FORMAT(a.published_at, %Y/%m/%d)', 'DESC');
我试着用谷歌搜索答案,然后转到了Doctrine网站:


但是仍然没有运气

为什么要在Doctrine中运行MySQL DATE\u格式?为什么不: $qb->addOrderBy'a.published_at','DESC'
是否在有效的日期字段中发布?还有一种日期格式会将其更改为字符串,并将其排序为字符串。

因为为了检索所需数据并使其按顺序排列,我需要这就是我需要的日期格式,但我不知道如何将其转换为DOCTRINEBut datetime以Y-m-d H:I:s格式存储在数据库中。所以,若小时数产生问题,那个么在该字段上排序可以正常工作,也许你们应该使用日期字段类型?。但若必须使用DATE_格式,则应定义自定义DQL函数。第一个google结果:是的,问题出在时间上,这就是为什么我需要使用日期格式,除了使用日期格式之外,还有其他方法可以解决这个问题吗?如果你不想创建自定义DQL函数,为订单目的添加特殊列,并在setPublishedAt更新该字段中,它可以被索引为整数,例如值:20140101,这非常快;