Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2011, 23h10   #1
Invité de passage
 
Lamia
Inscription : janvier 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Lamia

Informations forums :
Inscription : janvier 2011
Messages : 10
Points : 1
Points : 1
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 ...
mia06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 06h06   #2
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 668
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 668
Points : 8 721
Points : 8 721
Bonjour,

Citation:
Code :
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 :
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 :
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.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 10h39   #3
Invité de passage
 
Lamia
Inscription : janvier 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Lamia

Informations forums :
Inscription : janvier 2011
Messages : 10
Points : 1
Points : 1
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 :
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 :
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
mia06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h16   #4
Invité de passage
 
Lamia
Inscription : janvier 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Lamia

Informations forums :
Inscription : janvier 2011
Messages : 10
Points : 1
Points : 1
Au fait , un grand merci pour tes réponses sur mes deux topics .
mia06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 12h48   #5
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 668
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 668
Points : 8 721
Points : 8 721
Citation:
je suis au bord de la dépression
Bah faut se détendre

Citation:
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)

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h19.


 
 
 
 
Partenaires

Hébergement Web