我想使用doctrine从mysql数据库中选择不同年份:
使用mysql
很容易做到这一点SELECT DISTINCT DATE_FORMAT( year , '%Y') as dates FROM Inscription
我在学说文档中没有找到如何做到这一点,任何人都可以提供帮助吗?
答案 0 :(得分:0)
永远不要使用distinct,总是使用group by,如下所示:
SELECT DATE_FORMAT( year , '%Y') as dates
FROM Inscription
GROUP BY dates
我认为很容易找到关于分组的学说文档。
答案 1 :(得分:0)
SQL语句SELECT DISTINCT DATE_FORMAT( year , '%Y') as dates FROM Inscription
可以在Doctrine中编写,如下所示:
:一种。如果您正在编写表格方法:
class InscriptionTable extends Doctrine_Table {
/* ... */
public function getDistinctYears()
{
return $this->createQuery('I')
->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
->setHydrationMode(Doctrine::HYDRATE_ARRAY)
->execute();
}
}
<强> B中。如果您正在编写内联DQL调用:
InscriptionTable::getInstance()->createQuery('I')
->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
->setHydrationMode(Doctrine::HYDRATE_ARRAY)
->execute();
答案 2 :(得分:0)
如果你想在Doctrine 2中使用它,你可以使用这个扩展名:
指南: http://www.uvd.co.uk/blog/labs/using-mysqls-date_format-in-doctrine-2-0
代码: https://github.com/uvd/Doctrine
它对我很有用
答案 3 :(得分:0)
如果您使用Postgresql,您将收到:
select('SUBSTRING(offer.date_closed, 0, 5)')
函数substr(没有时区整数整数的时间戳)没有 存在
改为使用:
select('SUBSTRING(CONCAT(offer.date_closed, \'\'), 0, 5)')