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

PHP & Base de données Discussion :

Conversion d'une date


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 177
    Par défaut Conversion d'une date
    Salut,
    j'effectue un update sur ma base sql server grace au code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    $id_action =$_POST['Id_Action'];
    		$id_utilisateur =$_POST['Id_utilisateur'];
    		$type_action =$_POST['Type_action'];
    		$id_contact =$_POST['Id_Contact'];
     
    		$date_action =$_POST['Date_Action'];
    		$year = substr($date_action, 0, 4);
    		$year = intval($year);
    		$month = substr($date_action, 5, 2);
    		$month = intval($month);
    		$day = substr($date_action, 8, 2);
    		$day = intval($day);
    		$hours = substr($date_action, 11, 2);
    		$hours = intval($hours);
    		$minutes = substr($date_action, 14, 2);
    		$minutes = intval($minutes);
    		$seconds = substr($date_action, 17, 2);
    		$seconds = intval($seconds);
    		$msec = substr($date_action, 20, 3);
    		$msec = intval($msec);
     
    		$commentaire_action=$_POST['Commentaire_Action']; 
     
    		//connection à la base de données
    		include('../connection_bd.php');
     
    		//construction de la requette
    		$sql = "UPDATE [BDD_TOOL_V2].[dbo].[ACTIONS]
    				SET
    					[ID_TYPE_ACTION] ='".$type_action."',
    					[DATEACTION] = '".$year."'+'-'+'".$month."'+'-'+'".$day."'+' '+'".$hours."'+':'+'".$minutes."'+':'+'".$seconds."'+'.'+'".$msec."',
    					[COMMENTAIREACTION] ='".$commentaire_action."'
    				WHERE ACTIONS.[ID_ACTION] ='".$id_action."'";
     
    		//execution de la requette
    		odbc_do($connexion, $sql) or die(odbc_error());
    et j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: odbc_do() [function.odbc-do]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors limite de date et d'heure., SQL state 22008 in SQLExecDirect in C:\wamp\www\test_v3.0\Controleur\controleur_modification_action.php on line 56
    La date que je recupère grâce à "$date_action =$_POST['Date_Action'];" a le format suivant: YYYY-MM-JJ hh:mm:ss.msmsms

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Par défaut
    Bonjour,

    Pourquoi decoupez vous votre date saisie, pour la recomposer apres dans votre requete?

    JB

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 177
    Par défaut
    Salut,
    je decoupe ma date car c une chaine de caractere et du coup je ne peu l integer a ma bdd car il me demande un format date

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Par défaut
    Ok,

    essayez de voir cela avec la fonction str_to_date:
    http://dev.mysql.com/doc/refman/5.1/...on_str-to-date

    JB

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 177
    Par défaut
    ben le truc c'est que je bosse avec sql-server et non mysql

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Par défaut
    bonjour,
    je travaille actuellement avec .NET et SQL Server.
    Il accepte l'envoi de date en tant que chaîne à ce format-ci jj/mm/aaaa.
    Que ce soit avec du SQL embarqué ou une procédure stockée (ce qui est toujours mieux).
    D'ailleurs à regarder votre code vous envoyez une chaîne de caractères!

    [DATEACTION] = '".$year."'+'-'+'".$month."'+'-'+'".$day."'+' '+'".$hours."'+':'+'".$minutes."'+':'+'".$seconds."'+'.'+'".$msec."'
    Il y a trop de ' (quotes) et de " (double quotes) néfastes!
    Avec un echo ou du débogage vous auriez vu votre envoi! Il ne doit pas correspondre à ce que vous voulez.

    Donc essayez au format date de SQL Server (dans votre langue de travail).
    En FR : 01/01/2009 00:00:00

    ce devrait plutôt être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [DATEACTION] = "$day/$month/$year $hours:$minutes:$seconds"
    Et surtout utilisez l'interpolation PHP, c'est tellement plus facile à écrire et à lire. Pour Cela il faut des " (double quotes) en début et fin de chaîne, pas des ' (simple quote).

    bonne journée

Discussions similaires

  1. Conversion d'une date non standard en TDateTime ?
    Par MaTHieU_ dans le forum Delphi
    Réponses: 2
    Dernier message: 27/12/2006, 08h37
  2. conversion d'une date en chaine de caracteres
    Par salmer dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/10/2006, 16h31
  3. [C#] Conversion d'une date
    Par Jos dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/02/2006, 16h50
  4. Conversion d'une date jj/mm/aaaa en N°sem
    Par GD67 dans le forum Access
    Réponses: 2
    Dernier message: 16/11/2005, 09h02
  5. [date] conversion d'une date et compatibilité access
    Par WriteLN dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/01/2005, 14h03

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