SQL, Comment convertir VARCHAR pour bigint?
J'ai un champ qui est VARCHAR(6)
j'essaie de l'insérer dans une autre table de type bigint
il me donne une erreur
(Erreur de Conversion de type de données varchar pour bigint
ici est ce que je fais
CONVERT(bigint, seconds) as seconds
Quelqu'un peut aider avec ce problème?
Avez-vous vérifié les données pour s'assurer que les valeurs dans le champ que vous êtes de la conversion sont effectivement convertibles en un int?
semble que l'un de vos varchar n'est pas convertible...
Je l'ai, soit ont une valeur nulle, -le nombre et le nombre positif! mais je n'ai isnull(deuxième, 0) et j'ai toujours le même problème de Convertir(bigint, ISNULL(ts.Tempsensecondes,0) ) QUE les secondes
essayez de trouver avec une
isnumeric(secondes) = 0 n'a pas aidé, mais m'a donné une idée et cela a fonctionné. Convertir(bigint, isnumiric(ts.Tempsensecondes) ) COMME deuxième Merci beaucoup pour votre aide
semble que l'un de vos varchar n'est pas convertible...
Je l'ai, soit ont une valeur nulle, -le nombre et le nombre positif! mais je n'ai isnull(deuxième, 0) et j'ai toujours le même problème de Convertir(bigint, ISNULL(ts.Tempsensecondes,0) ) QUE les secondes
essayez de trouver avec une
where isnumeric(seconds) = 0
isnumeric(secondes) = 0 n'a pas aidé, mais m'a donné une idée et cela a fonctionné. Convertir(bigint, isnumiric(ts.Tempsensecondes) ) COMME deuxième Merci beaucoup pour votre aide
OriginalL'auteur Jaylen | 2013-01-31
Vous devez vous connecter pour publier un commentaire.
C'est la réponse
isnumiric
de ne pas exister (vérifier l'orthographe). Aussi, même siCONVERT()
(etISNUMERIC()
) fonctionne sur votre machine, vous avez étiqueté à votre question 'sql', qui est un langue - si votre machine a un particulier mise (SQL Server). La norme estCAST(... as BIGINT)
pour l'avenir de téléspectateurs, il peut être préférable soit de balise à votre question avec les SGBDR, ou d'écrire un "normes" de la version.Merci pour ça 🙂
Donc ce que tu voulais était d'insérer un
1
si la valeur deTimeInSeconds
est un entier valide et0
si ce n'est pas un entier valide? Ne voulez-vous pas la valeur dans la colonneTimeInSeconds
inséré quelque part?J'ai corrigé ma réponse après essayer de comprendre le problème. Merci encore pour votre aide les gars 🙂
OriginalL'auteur Jaylen
une autre solution serait de faire quelque chose comme:
OriginalL'auteur SQLGuru
Je pense que ton code est bon. Si vous exécutez le code suivant convertit la chaîne de caractères '60', qui est considéré comme de type varchar et retourne un entier de 60 ans, si il est entier contenant la chaîne dans la seconde, il fonctionne.
et il retourne
OriginalL'auteur manoj