Casting dans Informix
Dans Informix, comment puis-je jeter un char(8)
de type dans un money
type, de sorte que je peux le comparer à un autre money
type?
À l'aide de "tblAid.amt::money as aid_amt
" n'a pas de travail.
À l'aide de "(tblAid.amt * 1) AS aid_amt
" n'a pas de travail.
La version de Informix utilisez-vous? (Vous devriez toujours dire, parce que la réponse peut être nuancée à l'adresse de votre système. Les réponses ne changent au fil du temps, si vous utilisez des ID 7.31, aucun casting notations fera l'affaire).
OriginalL'auteur Jonathan Mueller | 2008-10-07
Vous devez vous connecter pour publier un commentaire.
essayez ceci -->
Vous pourriez être en mesure de comparer les quantités numériques.
OriginalL'auteur SKapsal
Première question - pourquoi n'êtes-vous pas stocker une valeur numérique dans une colonne numérique? Ce serait faire le reste de votre question discutable. Cela signifierait également que votre système fonctionnera mieux. Lorsque vous avez besoin de stocker des valeurs de données, utilisez la catégorie évidente; ne pas utiliser un type de chaîne à moins que les données est une chaîne de caractères.
Comme l'a déjà noté, vous pouvez utiliser le non-standard Informix cast notation:
Vous pouvez également être plus prudent sur le type moulé - en utilisant de l'ARGENT(8,2) par exemple. Vous pouvez également utiliser la notation standard:
Cela suppose que vous utilisez des ID 9.x ou plus tard-des produits plus anciens ne prennent pas en charge jette à tous. Cependant, en général, Informix est très bien de faire des conversions automatiquement (par exemple, la conversion de nombres en chaînes). Cependant, les chaînes sont comparées de manière lexicographique et non pas numériquement, donc une FONTE est probablement plus sage dans ce contexte, -- mais en évitant la nécessité d'une fonte en utilisant le bon type en premier lieu est plus sage.
OriginalL'auteur Jonathan Leffler
'tis été un moment depuis que j'ai joué un peu avec informix et je n'ai pas d'instance en cours d'exécution à portée de main au moment. Cependant, il y a deux choses qui peuvent causer un problème ici:
1), car elle est un char(8), il peut contenir des valeurs qui ne peuvent pas être castée numérique sans un peu de 'nettoyage'. E. g. "abc". Ou "1,234,567.00".
2) les espaces de fin. (char plutôt de type varchar).
Ce informix d'erreur vous obtenez sur votre cast explicite (::de l'argent)?
OriginalL'auteur KristoferA