私はこの文字列 '5666,232343
'を持っていますが、これをDecimalに変換する場合はcast('5666,232343' as decimal(7,5))
を使用しますが、NULL
の値を返します。 CASTで動作しない理由を知っていますかこの文字列を10進数に変換する方法
答えて
5666.232343の値を保持できる小数点にキャストする必要があります。
DECIMAL(7,5)
には、##。#####という形式の番号が使用できます。最大の数字は99.99999です。カンマを取り出して期間に置き換える必要があります。
SELECT CAST('5666.232343' as decimal(16,6)) AS [DecimalValue]
となるデータ型の問題がある場合は、この答えにコンマを置き換えてください。これは完全で最高です – Matt
問題はおそらくカンマです。いくつかのデータベースでは、機能のいくつかは国際的に敏感ではありません。したがって、試してみてください:
cast(replace('5666,232343', ',', '.') as decimal(7, 5))
Zorkolotが正しいです。使用した現在の精度と位取りは、提供した価値には十分ではありません。
あなたはSQL Server 2012のまたは以降を使用していて、あなたは、あなたがTRY_PARSE機能を使用して文化を設定することができ、値にカンマを維持したい場合。文を完了せずに赤いテキストを返す代わりに、エラーが発生した場合はNULLを返します。また、必要に応じて失敗したコンバージョンがゼロの値を返すようにすることで、ステートメントに基本的なエラー処理を追加することもできます。たとえば、次のように
これは私のエラー処理の修正と(現在はerroringされる)あなたの元のクエリです:
select coalesce(try_parse('5666,232343' as decimal(7,5) using 'en-GB'),'0') as [DecimalValue]
これは上記と同じものがあるが、私はそのように小数の精度とスケールを改正しました値が正常に変換されます。
select coalesce(try_parse('5666,232343' as decimal(16,6) using 'en-GB'),'0') as [DecimalValue]
これは、あなたがが手動またはSQL関数を使用してREPLACEを実行するのを防ぐ必要があります。
- 1. 16進文字列を10進数に変換する
- 2. 10進文字列で表される64ビット整数を16進文字列に変換する方法
- 3. 10進数から16進数への文字列の変換
- 4. ルビの文字列を10進数に変換する
- 5. キューブの文字列を10進数に変換する
- 6. 文字列を10進数のレッドシフトに変換するSQL
- 7. android studioの文字列を10進数に変換する方法
- 8. C#でセレニウムの文字列($ 23.25)を10進数 - $ 23.25に変換する方法
- 9. IQueryable内で文字列を10進数に変換する方法
- 10. 文字列を10進数に変換するC#
- 11. 10桁の数字を16進数の文字列に変換する
- 12. 16進文字列を整数に変換する方法
- 13. 文字列を16進数に変換する方法は?
- 14. 文字列を2進数に変換する方法
- 15. 負の文字列を10進値に変換する方法は?
- 16. 10進数の文字列
- 17. 文字列を16進数と16進数に変換する方法は?
- 18. Javascriptのプロトタイプ関数:10進数の時刻を文字列に変換する
- 19. 文字列内に10進数を追加する方法は?
- 20. これらの文字列をC#で10進数に変換する方法は?
- 21. 文字列を16進数で16進数に変換する
- 22. ObjC:数字のA〜Z文字を使用して10進数をベース26の文字列に変換する
- 23. 大規模な10進数をJavascriptの文字列に変換する
- 24. ベース32ビットのデコードされた文字列を10進数に変換する
- 25. 文字列を含む[]バイトを10進数値に変換する
- 26. Cで10進数をローマンに変換する - 関数から文字列を返す方法は?
- 27. 特殊文字をJavaの同等の10進数に変換
- 28. シェルスクリプトで文字列を10進数に変換して計算する
- 29. C++で16進文字配列を文字列に変換する方法は?
- 30. 負の小数の10進数を2進数に変換する方法
これは5666,232343とどれくらいですか? – maSTAShuFu
あなたはaで(カンマ)を置き換えようとしましたか? – Engin
カンマを削除するかカンマをドットで置き換えてもう一度やり直してください –