0

SQLServer2000の使用

表1

id values (datatype is nvarchar)

001 12:10 
002 01:25
003 10:01
004 21:20

値の列をfloatに変換したい。

クエリを試しました

Select id, Cast(Replace(values, '':'', ''.'') as float) as values from table1

出力は次のように表示されます

001 12.1 'zero is not showing
002 01.25
003 10.01
004 21.2 'zero is not showing

なぜゼロが隠れているのか..?2.10または2.1はfloatデータ型と同じですが、ユーザーは2時間10分ではなく2時間1分などの2.1を混乱させるでしょう...

この問題を解決する方法

期待される出力

id values (datatype is float)

001 12.10 
002 01.25
003 10.01
004 21.20

SQLクエリのヘルプが必要

4

2 に答える 2

2

12.1012.1は両方とも同じフロートの文字列表現です(12プラス10分の1)。データ型をfloatにしたい場合は、その文字列表現を指定できません。これは、floatを文字列に変換する場合にのみ実行できます。これは、この場合は無意味な演習になります(この値はすでに文字列として使用されているため)。

小数点以下の桁数が固定されているdecimalなど、 floatの代わりに別のデータ型を使用する方が、タスクに適している場合があります。

于 2012-06-11T08:59:09.873 に答える
0

試す

Select id, Cast(Replace(values, '':'', ''.'') as DECIMAl(10,2)) as values from table1
于 2012-06-11T09:08:54.737 に答える