2017-07-28 15 views
0

SQL Serverのストアドプロシージャで、値をvarchar列からfloat形式に変換しようとしています。 varcharカラムの値は、先頭に符号が付いた数字で、 '。'小数点前にT-SQLからfloatに変換する文字列

例: '0000000000000044.09' または '-0000000000114995.61'

私はこれをしようとした場合:変換(フロート、文字列MyString)、それは動作しません。 私は:データ型varcharをfloatに変換する際にエラーが発生しました。

この種の変換が可能かどうか教えてください。 また、記号と '。'文字列を変換する別の方法があります。フロートに?

はあなたの例の両方の仕事として、 ネロ

+2

両方のサンプルがうまくいきます。失敗しているサンプルを表示してください。 –

+1

コードも表示してください。これは動作します SELECT CAST( '+ 0000000000000044.09'浮動小数点) SELECT CAST( ' - 0000000000114995.61'浮動小数点) – gbn

+1

あなたの例は私のために働く。あなたはそれが問題を引き起こしているあなたのテーブルの不正な値ではないと確信していますか? –

答えて

0

をありがとう、私は問題を引き起こしているどこかのテーブル内の別の値があります推測すると思います。最近のバージョンのSQL Server(2012以降)では、この種の問題を追跡するのに、TRY_CONVERT関数が便利です。任意の行が返された場合

SELECT * FROM your_table WHERE TRY_CONVERT(FLOAT, your_column_name) IS NULL 

もの:あなたはこのような問題の原因となっている値を見つけ出すことができるように

TRY_CONVERTは、変換失敗時に例外をスローし、代わりにNULL値を返しませんFLOATに変換できない問題値を持つ行です。

0

CAST(mystring as float)またはTRY_CONVERT(float,mystring)を試すことができます。 Thuough convert(float、mystring)もうまく動作するはずです。私はあなたのデータをチェックすることをお勧めします。

関連する問題