doctrineを使用してmysqlデータベースから個別の年を選択したい:
mysqlを使用してこれを行うのは簡単です
SELECT DISTINCT DATE_FORMAT( year , '%Y') as dates FROM Inscription
私は教義の文書でこれを行う方法を見つけられません、誰でも助けることができますか?
Doctrine 2でこれが必要な場合は、次の拡張機能を使用できます。
ガイド: http ://www.uvd.co.uk/blog/labs/using-mysqls-date_format-in-doctrine-2-0
コード: https ://github.com/uvd/Doctrine
それは私にとって素晴らしい働きをします
SQLステートメントSELECT DISTINCT DATE_FORMAT( year , '%Y') as dates FROM Inscription
はDoctrineで次のように書くことができます。
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();
}
}
B.インラインDQL呼び出しを作成している場合:
InscriptionTable::getInstance()->createQuery('I')
->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
->setHydrationMode(Doctrine::HYDRATE_ARRAY)
->execute();
次のように、distinct を使用しないでください。可能な場合は常に group by を使用してください。
SELECT DATE_FORMAT( year , '%Y') as dates
FROM Inscription
GROUP BY dates
group by に関する Doctrine のドキュメントは見つけやすいと思います。
Postgresql を使用すると、次のようになります。
select('SUBSTRING(offer.date_closed, 0, 5)')
関数 substr (タイム ゾーン整数整数のないタイムスタンプ) が存在しません
代わりに使用してください:
select('SUBSTRING(CONCAT(offer.date_closed, \'\'), 0, 5)')