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

MS SQL Server Discussion :

Probleme insertion date avec un champ datetime


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut Probleme insertion date avec un champ datetime
    Bonjours, j'ai un petit soucis sur une requête sql avec sqlserver!!
    En fait je voudrais insérer dans un champ de type datetime, la date du jours sans les heures,juste la date sous forme dd/mm/yyyy??
    Est ce possible deja??
    J'ai regardé sur le net mais l'ensemble des réponses que j'ai pu tester ne fonctionne pas, j'ai essayé le cast, le convert, mais aucun des deux ne marche, je me suis sans doute trompé sur la syntaxe!!!
    Est e que quelqu'un pourrais m'aider!! en me donnant une syntaxe exacte svp??
    Merci d'avance pour vos réponse, je commence a craqué avec cette requête de M****!!!!!
    Merci

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Bonjour
    C'est impossible avec un champs datetime !
    C'est comme cela la date avec la norme SQL, oubliez donc les mauvaises manières.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oui c'est possible d'insérer ce genre de date.

    Quelle syntaxe tu as utilisé ??

    EDIT : oups c'est pas possible ??!! Moi je le fais bien, ou alors j'ai pas vraiment compris la question ... dans ce cas désolée !

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Citation Envoyé par poopsinou
    Oui c'est possible d'insérer ce genre de date.

    Quelle syntaxe tu as utilisé ??

    EDIT : oups c'est pas possible ??!! Moi je le fais bien, ou alors j'ai pas vraiment compris la question ... dans ce cas désolée !
    Je suis curieux de voir comment tu fais !?
    La date selon la norme SQL est de la forme YYYY-MM-DD hh:mm:ss.ccc
    Et comment oses-tu dire que tu arrives à n'inserer que la partie YYYY-MM-DD pour un champs de type datetime ?
    Je crois que ce que tu arrives à faire, c'est créer un champs varchar(10) et d'y inserer simplement un varchar(10) et tu crois inserer une date !

    Réfléchis, je crois que tu n'as pas bien compris sa question.
    Bonne compréhension.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    Voila ma requete sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "INSERT INTO PRS_PROSPECTS (PRS_nompersonne,PRS_civilite,PRS_prenom,PRS_adresse_1,PRS_CP,PRS_telephone1,PRS_email,PRS_ville,PRS_nomprenom,PRS_ag_prospet,PRS_transaction_o_n,PRS_location_o_n,PRS_gerance_o_n,PRS_adresse_2,PRS_adresse_3,PRS_pays,PRS_domic_telephone1,PRS_domic_telephone2,PRS_domic_telephone3,PRS_telephone2,PRS_telephone3,PRS_fax,PRS_cherch_lot_o_n,PRS_cherch_pers_o_n,PRS_origine,PRS_mdp,PRS_mailing_o_n,PRS_utilisateur,PRS_date_creation,PRS_no_propet,PRS_ag_naiss,PRS_no_pers,PRS_pige_o_n,PRS_cloture_o_n,PRS_remarque_cloture,PRS_cloture_par,PRS_dernier_contact,PRS_Comment_Affichage,PRS_bloc_notes,PRS_phys_morale,PRS_ad1autre,PRS_ad2autre,PRS_ad3autre,PRS_cpautre,PRS_villeautre,PRS_paysautre,PRS_tel1autre,PRS_tel2autre,PRS_tel3autre,PRS_faxautre,PRS_mailautre,PRS_SIRET,PRS_APE,PRS_RCS,PRS_intracom,PRS_famille,PRS_Datenais,PRS_Lieunais,PRS_sitmaritale,PRS_critere_1,PRS_critere_2,PRS_a_reeval_o_n,PRS_date_dem_reeval,PRS_heur_dem_reeval,PRS_devenu_loc_o_n,PRS_devenu_prop_o_n,PRS_syndic_o_n) VALUES ('".$nom_proprio."','".$titre_proprio."','".$prenom_proprio."','".$adresse_proprio."','".$cp_proprio."','".$tel_proprio."','".$mail_proprio."','".$ville_proprio."','".$nom_proprio." ".$prenom_proprio."',".$GLOBALS["IdAgence"].",0,1,0,'','','','','','','','','',0,1,'SITE','',0,'ls',CONVERT(datetime, GETDATE(), 103),'".$id."',0,0,0,0,'','',CONVERT(datetime, GETDATE(), 103),'','','','','','','','','','','','','','','','','','','',CONVERT(datetime, GETDATE(), 103),'','','','',0,CONVERT(datetime, GETDATE(), 103),'',0,0,0)";
    les champs ou il y a un convert sont des champs de type datetime.
    Et voila l'erreur sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: mssql_query() [function.mssql-query]: message: Line 1: Incorrect syntax near ','. (severity 15)
    Merci pour votre interêt, je vois vraiement pas d'ou vient l'erreur.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    moi je trouve que la question posée n'est pas claire.

    Car si la question posée est celle que j'ai comprise, y'a au moins 10000000000 posts ici qui traitent du problème...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    create table fuck( dt datetime null)
     
    insert into fuck
    select '20060104'
     
    select * from fuck
     
    dt
    2006-01-04 00:00:00.000
    Si notre amis ne veut pas voir de 00:00:00.000 dans sa base, ben c'est clair. Il ne décalre pas son champ comme datetime.
    Là aussi des milliers de pots ont posé cette question

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par WOLO Laurent
    Je suis curieux de voir comment tu fais !?
    La date selon la norme SQL est de la forme YYYY-MM-DD hh:mm:ss.ccc
    Et comment oses-tu dire que tu arrives à n'inserer que la partie YYYY-MM-DD pour un champs de type datetime ?
    Je crois que ce que tu arrives à faire, c'est créer un champs varchar(10) et d'y inserer simplement un varchar(10) et tu crois inserer une date !

    Réfléchis, je crois que tu n'as pas bien compris sa question.
    Bonne compréhension.
    Et bien je fais comme ça par exemple (avec deux façons d'écrire la date):
    UPDATE devis_affaires SET dateDebTravaux='11/09/2006',dateRecepChantier='15-12-2006' WHERE numDevis='050001';

    Résultat du select par la suite dans la base pour voir si ça a bien marché (même si j'ai eu aucun message d'erreur) :


    Et ça a toujours marché (en même temps, je me rapelles pas d'avoir utilisé d'autres méthodes depuis que je fais du SQL). Mes champs sont bien de type Datetime. Maintenant c'est peut-être SqlServer qui sait comment gérer ça. Mais si c'est mauvais de faire comme ça, dites le moi !! Je préfère changer de méthode que de continuer à faire des conneries

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par locs
    Voila ma requete sql:
    [/CODE]
    les champs ou il y a un convert sont des champs de type datetime.
    Et voila l'erreur sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: mssql_query() [function.mssql-query]: message: Line 1: Incorrect syntax near ','. (severity 15)
    Merci pour votre interêt, je vois vraiement pas d'ou vient l'erreur.
    Ca c'est de la requete !

    Bref, tu as une erreur ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    '".$nom_proprio." ".$prenom_proprio."',
    ".$GLOBALS["IdAgence"].",
    Il te manque des ''

    A+

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par poopsinou
    UPDATE devis_affaires SET dateDebTravaux='11/09/2006',dateRecepChantier='15-12-2006' WHERE numDevis='050001';
    Si c'est correct à condition que tout tes systèmes soient en français.

    Il est toujours préférable de passer les dates sous format YYYYMMDD, quitte à transformer le format des dates en amont.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ok, merci Je me doutais que y devais y avoir une histoire de français dans l'air

    Sinon pour son problème, c'est pas la concaténation qui va pas des fois ??

  11. #11
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Citation Envoyé par locs
    Voila ma requete sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "INSERT INTO PRS_PROSPECTS (PRS_nompersonne,PRS_civilite,PRS_prenom,PRS_adresse_1,PRS_CP,PRS_telephone1,PRS_email,PRS_ville,PRS_nomprenom,PRS_ag_prospet,PRS_transaction_o_n,PRS_location_o_n,PRS_gerance_o_n,PRS_adresse_2,PRS_adresse_3,PRS_pays,PRS_domic_telephone1,PRS_domic_telephone2,PRS_domic_telephone3,PRS_telephone2,PRS_telephone3,PRS_fax,PRS_cherch_lot_o_n,PRS_cherch_pers_o_n,PRS_origine,PRS_mdp,PRS_mailing_o_n,PRS_utilisateur,PRS_date_creation,PRS_no_propet,PRS_ag_naiss,PRS_no_pers,PRS_pige_o_n,PRS_cloture_o_n,PRS_remarque_cloture,PRS_cloture_par,PRS_dernier_contact,PRS_Comment_Affichage,PRS_bloc_notes,PRS_phys_morale,PRS_ad1autre,PRS_ad2autre,PRS_ad3autre,PRS_cpautre,PRS_villeautre,PRS_paysautre,PRS_tel1autre,PRS_tel2autre,PRS_tel3autre,PRS_faxautre,PRS_mailautre,PRS_SIRET,PRS_APE,PRS_RCS,PRS_intracom,PRS_famille,PRS_Datenais,PRS_Lieunais,PRS_sitmaritale,PRS_critere_1,PRS_critere_2,PRS_a_reeval_o_n,PRS_date_dem_reeval,PRS_heur_dem_reeval,PRS_devenu_loc_o_n,PRS_devenu_prop_o_n,PRS_syndic_o_n) VALUES ('".$nom_proprio."','".$titre_proprio."','".$prenom_proprio."','".$adresse_proprio."','".$cp_proprio."','".$tel_proprio."','".$mail_proprio."','".$ville_proprio."','".$nom_proprio." ".$prenom_proprio."',".$GLOBALS["IdAgence"].",0,1,0,'','','','','','','','','',0,1,'SITE','',0,'ls',CONVERT(datetime, GETDATE(), 103),'".$id."',0,0,0,0,'','',CONVERT(datetime, GETDATE(), 103),'','','','','','','','','','','','','','','','','','','',CONVERT(datetime, GETDATE(), 103),'','','','',0,CONVERT(datetime, GETDATE(), 103),'',0,0,0)";
    les champs ou il y a un convert sont des champs de type datetime.
    Et voila l'erreur sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: mssql_query() [function.mssql-query]: message: Line 1: Incorrect syntax near ','. (severity 15)
    Merci pour votre interêt, je vois vraiement pas d'ou vient l'erreur.
    Ton problème n'est peut être pas lié à la date !
    Qu'est ce qui se produit si l'une de tes variables a un marqueur null ?
    Vous aurez probablement deux virgules qui vont se succeder.
    Vous avez la piste, nous ne disposons d'aucun moyens pour deboguer ton code php.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  12. #12
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    Excuse moi d'insistermé je vois pas ou il me manque les caractéres "",voila la requete tel qu'elle est envoyé par php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO PRS_PROSPECTS (PRS_nompersonne,PRS_civilite,PRS_prenom,PRS_adresse_1,PRS_CP,PRS_telephone1,PRS_email,PRS_ville,PRS_nomprenom,PRS_ag_prospet,PRS_transaction_o_n,PRS_location_o_n,PRS_gerance_o_n,PRS_adresse_2,PRS_adresse_3,PRS_pays,PRS_domic_telephone1,PRS_domic_telephone2,PRS_domic_telephone3,PRS_telephone2,PRS_telephone3,PRS_fax,PRS_cherch_lot_o_n,PRS_cherch_pers_o_n,PRS_origine,PRS_mdp,PRS_mailing_o_n,PRS_utilisateur,PRS_date_creation,PRS_no_propet,PRS_ag_naiss,PRS_no_pers,PRS_pige_o_n,PRS_cloture_o_n,PRS_remarque_cloture,PRS_cloture_par,PRS_dernier_contact,PRS_Comment_Affichage,PRS_bloc_notes,PRS_phys_morale,PRS_ad1autre,PRS_ad2autre,PRS_ad3autre,PRS_cpautre,PRS_villeautre,PRS_paysautre,PRS_tel1autre,PRS_tel2autre,PRS_tel3autre,PRS_faxautre,PRS_mailautre,PRS_SIRET,PRS_APE,PRS_RCS,PRS_intracom,PRS_famille,PRS_Datenais,PRS_Lieunais,PRS_sitmaritale,PRS_critere_1,PRS_critere_2,PRS_a_reeval_o_n,PRS_date_dem_reeval,PRS_heur_dem_reeval,PRS_devenu_loc_o_n,PRS_devenu_prop_o_n,PRS_syndic_o_n) VALUES ('hgfhgfjf','Mr','jfdjhdjh','djhgjdg','jfdhg','fghfgh','gfhgfh','HGFH','hgfhgfjf jfdjhdjh',1,0,1,0,'','','','','','','','','',0,1,'SITE','',0,'ls',CONVERT(datetime, GETDATE(), 103),'157',0,0,0,0,'','',CONVERT(datetime, GETDATE(), 103),'','','','','','','','','','','','','','','','','','','',CONVERT(datetime, GETDATE(), 103),'','','','',0,CONVERT(datetime, GETDATE(), 103),'',0,0,0)
    Peux tu m'expliquer ou se trouve l'erreur stp??

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Autant pour moi, j'avais pas imaginer que $GLOBAL(...) était un numérique.

    Si je remplace le INSERT INTO par select ta requete marche en SQL 2000.

    Donc Wolo a probablemebt raison. Lorsque l'une de tes varibales $XXX a une valeur NULL, ca faut la grouille.

    Car il n'a y a pas de soucis avec la date, sauf que personnellement j'aurais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO ... SELECT
    plutot que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO .. VALUES(...)

  14. #14
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    Je comprend pas ta syntaxe avec le SELECT????
    Mes variables ne peuvent pas avoir de valeur je fais les test avant en php, il s'agit de champ obligatoire d'un formulaire.
    Peux tu m'expliquer ta syntaxe avec le select stp?
    Merci

  15. #15
    Invité
    Invité(e)
    Par défaut
    Pourquoi tu fais pas un echo de ta requête dans ton PHP, il va te sortir la requête avec les valeurs que tu as entré, parfois c'est plus facile de deviner d'où vient une erreur en faisant ça

  16. #16
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    C'est le dernier post que j'ai fait,c le echo de ma requete!!!

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par locs
    Je comprend pas ta syntaxe avec le SELECT????
    Mes variables ne peuvent pas avoir de valeur je fais les test avant en php, il s'agit de champ obligatoire d'un formulaire.
    Peux tu m'expliquer ta syntaxe avec le select stp?
    Merci
    Rien A signal. Values ou Select dans ton cas c pareil...

    Mais en ce qui me concerne, j'ai pour habitude d'utiliser SELECT dès qu'une fonction (comme GETDATE()) est appelée. Mais dans ton cas les deux syntaxes sont correctes.

  18. #18
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    Donc tupense que l'erreur viens d'ou?

  19. #19
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    Je viens d'executer ma requete directement dans SQLserver, il me met toujours l'heure en plus de la date, meme avec le convert.

  20. #20
    Invité
    Invité(e)
    Par défaut
    Oups désolée, je n'avais pas vu pour le echo :p autant (au temps ?) pour moi !

Discussions similaires

  1. [WD15] probleme insert into avec mysql et date?
    Par 3alit dans le forum WinDev
    Réponses: 6
    Dernier message: 21/11/2013, 19h59
  2. probleme insertion date avec php et mysql
    Par fou-jea dans le forum Langage
    Réponses: 13
    Dernier message: 06/10/2012, 21h57
  3. Probleme avec un champ DATETIME Acces
    Par tryonyco dans le forum Access
    Réponses: 2
    Dernier message: 06/09/2006, 04h22
  4. probleme de requete avec un champ datetime
    Par graphicsxp dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/02/2006, 14h32
  5. Réponses: 3
    Dernier message: 23/09/2003, 09h12

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