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

Développement SQL Server Discussion :

erreur avec le type datetime !


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 8
    Points
    8
    Par défaut erreur avec le type datetime !
    Bonsoir , quand je fais des insertions dans ma table , j'ai l'erreur suivante

    Msg 242, Level 16, State 3, Line 1
    The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
    The statement has been terminated.
    je vous montre ma requête

    insert into historique_inondation values ('Inon1','Tala Hamza','très élevé','20/12/2002')

    la table est crée , mais quand je fais des " insert to " j'ai ce message qui s'affiche et j'ignore comment remédier à cela , merci d'avance pour votre aide et surtout votre patience ...

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into historique_inondation values ('Inon1','Tala Hamza','très élevé','20/12/2002')
    Dans votre code, la date est représentée par une chaîne, que SQL Server essaie de transtype au type date ou datetime (merci de nous le dire) sans y parvenir parce que votre représentation de date n'est pas ISO.

    Vous pouvez donc écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    INSERT	INTO dbo.historique_inondation 
    (
    	id_inondation
    	, ville
    	, niveau
    	, date_inondation
    )
    VALUES
    (
    	'Inon1'
    	, 'Tala Hamza'
    	, 'très élevé'
    	, '20021220'
    )
    Ou encore, si vous tenez à la représentation Française :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    INSERT	INTO dbo.historique_inondation 
    (
    	id_inondation
    	, ville
    	, niveau
    	, date_inondation
    )
    VALUES
    (
    	'Inon1'
    	, 'Tala Hamza'
    	, 'très élevé'
    	, CONVERT(datetime, '20/12/2002', 103)
    )

    Le mieux étant de tout avoir en ISO, ce qui fonctionne très bien à travers une grande majorité de langages.
    Pour connaître la liste de tous les formats, référez-vous à la documentation de CONVERT()

    Au passage, votre modélisation laisse un peu à désirer.
    J'aurai plutôt vu :

    - une entité inondation
    - une entité ville
    - une entité niveau_inondation
    - une entité historique_inondation qui référence les entité précédentes, avec des attributs supplémentaires si besoin est.

    @++

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,



    Dans votre code, la date est représentée par une chaîne, que SQL Server essaie de transtype au type date ou datetime (merci de nous le dire) sans y parvenir parce que votre représentation de date n'est pas ISO.

    Vous pouvez donc écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    INSERT	INTO dbo.historique_inondation 
    (
    	id_inondation
    	, ville
    	, niveau
    	, date_inondation
    )
    VALUES
    (
    	'Inon1'
    	, 'Tala Hamza'
    	, 'très élevé'
    	, '20021220'
    )
    Ou encore, si vous tenez à la représentation Française :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    INSERT	INTO dbo.historique_inondation 
    (
    	id_inondation
    	, ville
    	, niveau
    	, date_inondation
    )
    VALUES
    (
    	'Inon1'
    	, 'Tala Hamza'
    	, 'très élevé'
    	, CONVERT(datetime, '20/12/2002', 103)
    )

    Le mieux étant de tout avoir en ISO, ce qui fonctionne très bien à travers une grande majorité de langages.
    Pour connaître la liste de tous les formats, référez-vous à la documentation de CONVERT()

    Au passage, votre modélisation laisse un peu à désirer.
    J'aurai plutôt vu :

    - une entité inondation
    - une entité ville
    - une entité niveau_inondation
    - une entité historique_inondation qui référence les entité précédentes, avec des attributs supplémentaires si besoin est.

    @++

    Bonjour , c'est déjà le cas , j'ai l'entité commune , entité historique_inondation et l'entité inondation , tout est lié , je bosse sur un SIG avec une BDD SQL server et je suis au bord de la dépression

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Au fait , un grand merci pour tes réponses sur mes deux topics .

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    je suis au bord de la dépression
    Bah faut se détendre

    c'est déjà le cas , j'ai l'entité commune , entité historique_inondation et l'entité inondation , tout est lié
    Dans ce cas c'est le choix de votre type de données pour les clés primaires qui n'est pas le bon.
    Prenez plutôt des entiers avec la propriété d'auto-incrémentation, ou des dates (c'est encore mieux si elles sont toujours croissantes)

    @++

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

Discussions similaires

  1. Erreur avec le type ROWID
    Par HoodooBrown dans le forum Oracle
    Réponses: 7
    Dernier message: 10/10/2014, 17h20
  2. Erreur avec Masterpage 'type non défini'
    Par Stephane_br dans le forum ASP.NET
    Réponses: 0
    Dernier message: 16/10/2013, 14h43
  3. [FireBird 2] Erreur avec le type TIME
    Par guence dans le forum SQL
    Réponses: 2
    Dernier message: 10/04/2007, 18h17
  4. pb avec le type datetime
    Par emmillie dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/03/2007, 10h17
  5. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58

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