Modifier résultat requete SQL

doumbe26 Messages postés 154 Statut Membre -  
 le père -
Bonjour,

voila actuellement je lance une requete sur un serveur SQL
ex : le champs contient : 1929-12-29 00:00:00,000

et il m'affiche sur ma page php : Dec 29 1929 12:00AM

le résultat que je souhaitrais avoir est : 29 décembre 1929

est-ce possible??

Merci par avance
Configuration: Windows XP / Internet Explorer 7.0

11 réponses

  1. le père
     
    Bonjour

    Oui, c'est possible.
    Utile la fonction substr() pour séparer année, mois et jour de ta date
    Par exemple $annee=substr($madate,0,4); je te laisse déterminer pour le jour et le mois
    Ensuite, pour avoir le nom du mois, utilise un tableau que tu as initialisé avec les noms des mois:
    $nomsmois=array('janvier','février', etc);
    echo $nomsmois($mois-1);
    0
  2. le père
     
    c'était echo $nomsmois[$mois-1]; bien sûr
    0
  3. swed
     
    Bonjour,
    BIENSUR c'est possible.

    Si ton champ dans la base est au format date, utiliser la fonction TO_CHAR() pour le formatter.

    Si ton champ est au format varchar (ou autre format caractère), alors d'abord le convertir en date avec TO_DATE() puis le reformatter en chaine avec TO_CHAR().

    Je te laisse te documenter sur ces deux fonctions.

    Cordialement,
    M.
    0
  4. swed
     
    Bonjour,
    D'après moi, la solution SQL est à préférer à la solution PHP ;
    Ceci t'évitera d'écrire le tableau des mois et ton propre algo de formattage, car les fonctions SQL existent déjà.
    N'empêche que la solution de lepère était sympa.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. le père
     
    car les fonctions SQL existent déjà
    Ça m'intéresse ! Comment obtiens-tu les mois en français avec mysql ?
    0
  7. swed
     
    Re,

    TO_CHAR(ma_date, 'DD MONTH YYYY')

    Ca devrait faire l'affaire...
    En tout cas sur un Oracle config en français, ca fait l'affaire.
    0
  8. doumbe26 Messages postés 154 Statut Membre 3
     
    okok j'essayrais tout sa au boulo demain,
    merci bien
    0
  9. doumbe26 Messages postés 154 Statut Membre 3
     
    Voila ce que j'ai fait, je pense que sa peut etre optimisé, si vous avez des suggestions je suis preneur ^^

    $mois=substr($row[5],0,3);
    $mois_naiss=substr($row[3],0,3);
    $jour=substr($row[5],4,2);
    $jour_naiss=substr($row[3],4,2);
    $annee=substr($row[5],6,5);
    $annee_naiss=substr($row[3],6,5);
    $nomsmois=array('janvier','février','mars','avril','mai','juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'décembre');
    if( $mois == "Jan" || $mois_naiss == "Jan" )
    $mois = $nomsmois[0];
    $mois_naiss = $nomsmois[0];
    if( $mois == "Feb" || $mois_naiss == "Feb")
    $mois = $nomsmois[1];
    $mois_naiss = $nomsmois[1];
    if( $mois == "Mar" || $mois_naiss == "Mar")
    $mois = $nomsmois[2];
    $mois_naiss = $nomsmois[2];
    if( $mois == "Apr" || $mois_naiss == "Apr")
    $mois = $nomsmois[3];
    $mois_naiss = $nomsmois[3];
    if( $mois == "May" || $mois_naiss == "May")
    $mois = $nomsmois[4];
    $mois_naiss = $nomsmois[4];
    if( $mois == "Jun" || $mois_naiss == "Jun")
    $mois = $nomsmois[5];
    $mois_naiss = $nomsmois[5];
    if( $mois == "Jul" || $mois_naiss == "Jul")
    $mois = $nomsmois[6];
    $mois_naiss = $nomsmois[6];
    if( $mois == "Aug" || $mois_naiss == "Aug")
    $mois = $nomsmois[7];
    $mois_naiss = $nomsmois[7];
    if( $mois == "Sep" || $mois_naiss == "Sep")
    $mois = $nomsmois[8];
    $mois_naiss = $nomsmois[8];
    if( $mois == "Oct" || $mois_naiss == "Oct")
    $mois = $nomsmois[9];
    $mois_naiss = $nomsmois[9];
    if( $mois == "Nov" || $mois_naiss == "Nov")
    $mois = $nomsmois[10];
    $mois_naiss = $nomsmois[10];
    if( $mois == "Dec" || $mois_naiss == "Dec")
    $mois = $nomsmois[11];
    $mois_naiss = $nomsmois[11];
    $date = $jour." ".$mois." ".$annee;
    $date_naiss = $jour_naiss." ".$mois_naiss." ".$annee_naiss;
    0
  10. le père
     
    "optimisé" n'est pas le mot. On optimise ce qui marche pour l'améliorer, mais si tu as essayé ton code tu dois bien savoir qu'il ne marche pas.
    L'utilisation d'un tableau n'a aucun intérêt si tu fais 12 tests consécutifs pour les 12 cas possibles.

    En supposant que tes extractions de jopur, mois et année soient corrects au départ :
    $mois=substr($row[5],0,3);
    $mois_naiss=substr($row[3],0,3);
    $jour=substr($row[5],4,2);
    $jour_naiss=substr($row[3],4,2);
    $annee=substr($row[5],6,5);
    $annee_naiss=substr($row[3],6,5);
    $nomsmois=array('Jan'=>'janvier','Feb'=>'février',...'Dec'=>'décembre');
    $date = $jour." ".$nomsmois[$mois]." ".$annee;
    $date_naiss = $jour_naiss." ".$nomsmois[$mois_naiss]." ".$annee_naiss;


    Il aurait mieux valu faire une fonction qui formate la date à ta convenance, ça allège le programme et ça évite d'avoir des affichages incohérents, mais c'est une autre histoire.
    0
    1. doumbe26 Messages postés 154 Statut Membre 3
       
      uii sava mieux comme sa
      thanks !!
      0
  11. swed
     
    TO_CHAR(ma_date, 'DD MONTH YYYY')
    C'est un peu plus court, non ?
    0
  12. le père
     
    Tout à fait d'accord. Mais il faut disposer d'Oracle, car les fonctions qui ressemblent (TO_CHAR n'existe pas) en mysql ne fournissent que de l'anglais...
    0