[解決済み] tSQL - varchar から数値への変換は整数以外ではうまくいきません。
2022-03-08 06:32:17
質問
数字が入ったテーブルを
varchar(255)
フィールドがあります。これらはすべて1より大きく、小数点以下が複数あります。これらを整数に変換したいのですが、どうすればよいでしょうか?私が参照したすべてのウェブサイトによると、以下のとおりです。
StackOverflowのこの1つ
のどちらかで動作するはずです。
SELECT CAST(VarcharCol AS INT) FROM MyTable
SELECT CONVERT(INT, VarcharCol) FROM MyTable
これらは両方とも、あらゆる種類の数値に対して機能しますが
integer
- に変換することができますね。
float
,
decimal
などに変換するのは問題ありませんが
integer
は、次のようなエラーが発生します。
Conversion failed when converting the varchar value '7082.7758172'
to data type int.
データ型に変換することで問題を回避しています。
Decimal(6,0)
で、これは問題なく動作します。しかし、私の勉強のために、どなたか、なぜデータ型
int
(または
integer
がエラーになるのですか?ありがとうございます。
解決方法は?
を変換する
varchar
の値を
int
は、データの損失を防ぐため、値に小数点が含まれる場合は失敗します。
に変換すると
decimal
または
float
の値に変換し、その後
int
であれば、変換はうまくいきます。
以下のいずれの例でも、7082が返されます。
SELECT CONVERT(int, CONVERT(decimal(12,7), '7082.7758172'));
SELECT CAST(CAST('7082.7758172' as float) as int);
に変換することに注意してください。
float
の値は、まれに精度が落ちることがあります。 私なら
decimal
を指定する必要があります。
varchar
のデータを変換することができます。
関連
-
[解決済み】データベースへの「ネイティブ」SQL接続を使用するとはどういう意味ですか?
-
[解決済み] pg_restoreです。[archiver] 入力ファイルはテキスト形式のダンプであるように見えます。psql を使用してください。
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] SQL Server - INNER JOIN WITH DISTINCT
-
[解決済み] FROM のサブクエリにはエイリアスが必要です。
-
[解決済み] 集計を行わずに行から列へピボット移動する
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] トリガーがコンパイルエラーで作成される
-
[解決済み] SQLiteでどのようにピボットするか、つまり、長い形式で保存されたテーブルを広い形式で選択するか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】''付近の構文が正しくない
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み】PL/SQL SELECTに複数のCOUNT(DISTINCT xxx)を指定すると、予期しない結果になる。
-
[解決済み】SQLクエリ「00904. 00000 - "%s: 無効な識別子"
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法
-
[解決済み】SQLクエリを使用して文字列をint型に変換する