Symfony1 选择不同的年份原则

Symfony1 选择不同的年份原则,symfony1,doctrine,Symfony1,Doctrine,我想使用条令从mysql数据库中选择不同的年份: 使用mysql很容易做到这一点 SELECT DISTINCT DATE_FORMAT( year , '%Y') as dates FROM Inscription 我在条令文档中找不到如何做到这一点,任何人都可以提供帮助?在可能的情况下,永远不要使用distinct,而是使用group by,如下所示: SELECT DATE_FORMAT( year , '%Y') as dates FROM Inscription G

我想使用条令从mysql数据库中选择不同的年份:

使用mysql很容易做到这一点

SELECT DISTINCT DATE_FORMAT( year , '%Y') as dates FROM Inscription 

我在条令文档中找不到如何做到这一点,任何人都可以提供帮助?

在可能的情况下,永远不要使用distinct,而是使用group by,如下所示:

  SELECT DATE_FORMAT( year , '%Y') as dates 
    FROM Inscription 
GROUP BY dates

关于group by的条令文档很容易找到。

SQL语句
选择不同的日期格式(年,'%Y')作为铭文日期可以用条令书写如下:

A.如果您正在编写表方法:

class InscriptionTable extends Doctrine_Table {
  /* ... */
  public function getDistinctYears()
  {
    return $this->createQuery('I')
           ->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
           ->setHydrationMode(Doctrine::HYDRATE_ARRAY)
           ->execute();
  }
}
InscriptionTable::getInstance()->createQuery('I')
                ->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
                ->setHydrationMode(Doctrine::HYDRATE_ARRAY)
                ->execute();
B.如果您正在编写内联DQL调用:

class InscriptionTable extends Doctrine_Table {
  /* ... */
  public function getDistinctYears()
  {
    return $this->createQuery('I')
           ->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
           ->setHydrationMode(Doctrine::HYDRATE_ARRAY)
           ->execute();
  }
}
InscriptionTable::getInstance()->createQuery('I')
                ->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
                ->setHydrationMode(Doctrine::HYDRATE_ARRAY)
                ->execute();

如果您想在条令2中实现这一点,您可以使用此扩展:

指南:

守则:


它对我非常有用

如果您使用Postgresql,您将收到:

select('SUBSTRING(offer.date_closed, 0, 5)')
函数substr(不带时区整数的时间戳)不可用 存在

改用:

select('SUBSTRING(CONCAT(offer.date_closed, \'\'), 0, 5)')

您使用的是哪种版本的学说?