Comment puis-je utiliser SQL de l'ANNÉE(), MOIS() et le JOUR() dans Doctrine2?

Je veux exécuter une requête qui devrait ressembler à cela en SQL natif:

SELECT
    AVG(t.column) AS average_value
FROM
    table t
WHERE
    YEAR(t.timestamp) = 2013 AND
    MONTH(t.timestamp) = 09 AND
    DAY(t.timestamp) = 16 AND
    t.somethingelse LIKE 'somethingelse'
GROUP BY
    t.somethingelse;

Si je suis en train de mettre en œuvre cette Doctrine du générateur de requête comme ceci:

$qb = $this->getDoctrine()->createQueryBuilder();
$qb->select('e.column AS average_value')
   ->from('MyBundle:MyEntity', 'e')
   ->where('YEAR(e.timestamp) = 2013')
   ->andWhere('MONTH(e.timestamp) = 09')
   ->andWhere('DAY(e.timestamp) = 16')
   ->andWhere('u.somethingelse LIKE somethingelse')
   ->groupBy('somethingelse');

Je reçois le message d'erreur exception

[Erreur de syntaxe] la ligne 0, col 63: Erreur: Attendu fonction connue, a obtenu "ANNÉE"

Comment puis-je mettre en œuvre ma requête avec des Doctrines générateur de requêtes?

Notes:

  • Je sais à propos de La Doctrine du SQL Natif. J'ai essayé cela, mais il conduit au problème que mon productif et mon développement tables de base de données ont des noms différents. Je veux travailler de base de données agnostique, donc ce n'est pas une option.
  • Bien que je veux travailler db agnostique: pour info, je suis de l'utilisation de MySQL.
  • Il y a moyen d'étendre la Doctrine "d'apprendre" le YEAR() etc. états, par exemple, comme vu ici. Mais je suis à la recherche d'un moyen pour éviter l'ajout de plugins tiers.
  • Je suis de l'utilisation de MySQL.