Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
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 20/06/2008, 10h00   #1
Invité régulier
 
Inscription : mai 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 29
Points : 8
Points : 8
Par défaut [TSQL]Problème de conversion de varchar en float

Salut à tous.

J'ai un problème au niveau d'une requête.
La voici :
Code :
1
2
3
 
INSERT INTO earthquake (net_id, start_time, lat, lon, deep, ref_unit, magnitude, mag_unit, format_id, dir, filename, lddate) 
VALUES(1,'2000-01-04 02:54:34.250', 100.0, 101.0,NULL, 1, 0.5, 2, 1, NULL, 'Unknown', '10-09-1980')
Sachant que le code de création de la bdd earthquake est le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
CREATE TABLE earthquake
(
	id bigint identity NOT NULL,
	net_id bigint NOT NULL,
	start_time float NOT NULL,
	lat float,
	lon float,
	deep float,
	ref_unit bigint NOT NULL,
	magnitude float,
	mag_unit bigint,
	format_id bigint NOT NULL,
	dir varchar(255),
	filename varchar(255),
	lddate datetime NOT NULL,
	PRIMARY KEY nonclustered (net_id, start_time),
	FOREIGN KEY (net_id) REFERENCES network(id),
	FOREIGN KEY (ref_unit) REFERENCES units(id),
	FOREIGN KEY (mag_unit) REFERENCES units(id),
	FOREIGN KEY (format_id) REFERENCES formats(id)
)
L'erreur est la suivante :
Code :
1
2
 
Implicit conversion FROM datatype 'VARCHAR' TO 'FLOAT' IS NOT allowed.  USE the CONVERT FUNCTION TO run this query.
J'ai bien essayé d'utiliser la fonction convert en faisant quelque chose comme ceci mais cela me met toujours la même erreur :
Code :
1
2
3
 
INSERT INTO earthquake (net_id, start_time, lat, lon, deep, ref_unit, magnitude, mag_unit, format_id, dir, filename, lddate) 
VALUES(1,'2000-01-04 02:54:34.250', + convert(float,100.0), + convert(float,101.0),NULL, 1, 0.5, 2, 1, NULL, 'Unknown', '10-09-1980')
Si quelqu'un a déjà eu ce problème et sait comment le resoudre, il est le bienvenue.
Merci d'avance.
supertom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 10h51   #2
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
bonjour,

en fait je pense que c'est un pb de typage : votre champ 'starttime' dans lequel nous insérer une date au bon format n'est pas du bon type.

start_time float NOT NULL

je pense que le pb est là.
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 11h39   #3
Invité régulier
 
Inscription : mai 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 29
Points : 8
Points : 8
J'ai un peu honte mais c'était ça ...
A ma décharge, le message d'erreur était pas super explicite...
supertom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 11h56   #4
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
moué...
__________________
Emmanuel T.
kagemaru 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 02h49.


 
 
 
 
Partenaires

Hébergement Web