Bonjour,
je travaille sur un projet symfony 2 et je veut compter le nombre d'employée qui ont date fin essai aprés moin d'un mois
Voila je rencontre un petit problème avec mon code.

  $Essai1_numberC = $this->container->get('doctrine')->getManager('Mysql')->getRepository('monprojetBundle:employee')
                    ->createQueryBuilder('r')  
                    ->where('DATE_DIFF( r.DateFinEssai , CURRENT_DATE()) < 32 AND r.DateFinEssai IS NOT NULL AND r.EnEssai = 1 ') 
                    ->getQuery()
                    ->getResult(); 
            $Essai1_number = count($Essai1_numberC) ; 

et le nombre que j'obtient n'est pas correct
je ne sais pas pourquoi ça ne marche pas correctement !!!!
merci pour votre aide :)

8 réponses


Bonsoir,

Avant de faire le count, peut tu me sortir un resultat de ta requete et dans le mode debug de symfony la requete exacte qu'il creait ?

Cordialement

mbt
Auteur

salut
la problème de mon code c'est que r.DateFinEssai est une chaine de caractère y'a il une moyen pour convertir une chaine de caractére en date dans une requête sql ???

Bonsoir, Dans ta base de données, l'attribut "DateFinEssai" n'est pas de type "date" ou "datetime" ?

Bonjour,

Je te donne une requete qui pourrait permettre de resoudre ton probleme à toi de l'adapter à ton cas :

SELECT whatever
  FROM yourtable
 WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAYS
mbt
Auteur

bonjour
l'attribut "DateFinEssai" est de type varchar
est concernant la réponse de Bahamut45 la fonction "STR_TO_DATE" n'est pas définie dans doctrine .

Bonsoir,

Regarde ce bundle : https://github.com/beberlei/DoctrineExtensions

Cordialement

what is better? symfony or laravel ?

Salut,

soit tu utilises les "Native SQL" queries de Doctrine :

http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/native-sql.html

soit :

$con = $this->container->get('doctrine')->getConnection();
$stmt = $con->executeQuery($sql, $params,...);  // $sql => sql proposé par bahamut45, adaptée à ton cas

voir la classe \Doctrine\DBAL\Connection pour d'autres possibilités !