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 09/02/2011, 09h58   #1
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 54
Points : 25
Points : 25
Par défaut Problème de conversion

Bonjour

J'ai un probleme de compréhension :
La requete ci dessous retourne 1 et d'apres la doc cela implique que le texte peut etre converti en int ou en numerique

Code :
SELECT ISNUMERIC('12,2')
Pourtant quand j'exécute une des 2 requetes ci dessous SQL Serveur me retourne une erreur....

Code :
1
2
SELECT cast('12,2' AS numeric(18,0))
SELECT convert(numeric(18,0),'12,2')
Pouvez vous m'expliquer le problème ?

Merci
achestyx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 10h39   #2
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Le marqueur décimal est le point et non la virgule.
Quant au ISNUMERIC, voir MSDN:

Citation:
ISNUMERIC retourne 1 pour certains caractères qui ne sont pas des nombres, tels que les signes plus (+) et moins (-), et les symboles monétaires valides tels que le symbole dollar ($).
A noter que ISNUMERIC retourne 0 pour l'absence de valeur (NULL)
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 16h27   #3
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 54
Points : 25
Points : 25
En fait, sauf erreur de ma part, il n'est fait aucune référence dans la doc du caractère virgule. Il me semble que dans mon cas (chaine avec des digits et une virgule) la fonction IsNumeric aurait du retourner 0....

Vu que je bosse dans un contexte décisionnel, j'ai pu ajouter un traitement de remplacement des ',' par des '.' via la fonction Replace. Je ne serai plus confronté au problème sur la fonction IsNumeric.
achestyx 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 06h14.


 
 
 
 
Partenaires

Hébergement Web