IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Un petit souci avec les dates


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut Un petit souci avec les dates
    Bonjour, j'ai un petit problème avec l'insertion dans une base MySQL de champs date.

    Je traite un fichier xml afin d'insérer les champs dans ma DB.
    Dans ce fichier, la date est au format français (JJ/MM/AAAA).
    Je voudrai la transformer au format (YYYY-MM-DD) afin de l'insérer dans un champ "date".

    Est-il possible d'effectuer la transformation directement dans la requete MySQL "INSERT INTO"?

    Merci par avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Citation Envoyé par Ben-o Voir le message
    Bonjour, j'ai un petit problème avec l'insertion dans une base MySQL de champs date.

    Je traite un fichier xml afin d'insérer les champs dans ma DB.
    Dans ce fichier, la date est au format français (JJ/MM/AAAA).
    Je voudrai la transformer au format (YYYY-MM-DD) afin de l'insérer dans un champ "date".

    Est-il possible d'effectuer la transformation directement dans la requete MySQL "INSERT INTO"?

    Merci par avance pour votre aide.
    Il faut que tu puisses découper pour le remplacer dans le format date de Mysql. Sinon il faut faire une fonction pour le remettre en place. Dans les astuce de mysql présent en haut de se forum j'ai fais une prod stock (si tu es sur Mysql5) elle te permet de spliter. En gros

    CALL Split('20/12/2007','/');
    SELECT * FROM t_split;
    idItem | Item
    1 | 20
    2 | 12
    3 | 2007
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Merci pour ta réponse, mais je ne sais pas comment mettre cela en place concrètement.

    Ma requete est de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO t_maison VALUES ('', '$date_offre[1]');")
    Peux-tu me donner une piste?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Je viens de trouver ceci:

    Fonction à utiliser : STR_TO_DATE(str,format)

    INSERT INTO maTable
    (monChamp)
    VALUES
    (STR_TO_DATE(maChaine, '%m/%d/%Y %h:%i:%s %p'));


    J'essaye...

  5. #5
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Citation Envoyé par Ben-o Voir le message
    Merci pour ta réponse, mais je ne sais pas comment mettre cela en place concrètement.

    Ma requete est de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO t_maison VALUES ('', '$date_offre[1]');")
    Peux-tu me donner une piste?
    T'es sur PHP ? T'as pas honte ? c'est encore plus simple.
    En Php il y a des fonctions qui peut t'arranger cela.

    implode('/',array_reverse(Explode($date_offre[1])))

    Tente moi ça
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Je viens d'essayer, et j'ai cette erreur:

    Column 'date_offre' cannot be nullErreur lors de l'insertion ds la table t_maison

    Pourtant j'ai bien une date dans mon fichier xml.

  7. #7
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Tu as utilisé qu'elle fonction ? celle que tu as trouvé ou celle en php?
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Celle en php! je t'ai écouté, j'ai tenté.

  9. #9
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Citation Envoyé par Ben-o Voir le message
    Celle en php! je t'ai écouté, j'ai tenté.
    Ha je crois que j'ai fais une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    implode('-',array_reverse(Explode('/', $date_offre[1])))
    1- Je convertie une chaine en tableau sur le séparateur "/" donc 20/12/2007 =>
    [0][20]
    [1][12]
    [2][2007]

    2 - J'inverse
    [0][2007]
    [1][12]
    [2][20]

    3 - explode 2007-12-20
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    Mince, j'ai toujours la même erreur, c'est bizarre

    En tout cas, merci pour ton aide

    Voila l'ensemble de ma requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO t_maison VALUES ('', '$type_offre[1]', '$NO_ASP[1]', '$id_mandat', 'implode('-',array_reverse(explode('/',$date_offre[1])))', 'implode('-',array_reverse(explode('/',$date_modif[1])))', '$prix[1]', '', '$depot_garantie[1]', '$taxe_fonciere[1]', '$cp_internet[1]', '".addslashes($ville_intenet[1])."', '$id_secteur', '$id_categorie', '$nb_pieces[1]', '$nb_chambres[1]', '$surf_hab[1]', '$surf_carrez[1]', '$surf_sejour[1]', '$surf_terrain[1]', '$nb_etages[1]', '$annee_cons[1]', '$id_cuisine', '$nb_sdb[1]', '$nb_se[1]', '$garage_box[1]', '$nb_caves[1]', '$id_chauffage', '$ascenseur[1]' , '$balcon[1]', '$terrasse[1]', '$piscine[1]', '$murs_mitoyens[1]', '$facade_terrain[1]', '".addslashes($texte_fr[1])."', '".addslashes($texte_uk[1])."', '".addslashes($texte_sp[1])."', '".addslashes($texte_ger[1])."', '$rs_agence[1]', '$tel_agence[1]', '$mail_agence[1]', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '$prestige[1]', '','');")or die (mysql_error()."Erreur lors de l'insertion ds la table t_maison.");
    Ne serait-ce pas un problème avec les simples quotes?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    C'est bon , ça fonctionne, il y avait un problème de syntaxe, voici la requete modifiée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO t_maison VALUES ('', '$type_offre[1]', '$NO_ASP[1]', '$id_mandat', '".implode('-',array_reverse(explode('/',$date_offre[1])))."', '".implode('-',array_reverse(explode('/',$date_modif[1])))."', '$prix[1]',...
    Merci encore pour ton aide!

  12. #12
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    De rien
    Tu peux mettre "Résolu" maintenant
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/10/2006, 12h25
  2. [Dates] souci avec les dates
    Par Ludo75 dans le forum Langage
    Réponses: 3
    Dernier message: 22/02/2006, 17h15
  3. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo