使用SQL Server 2000
table1
id values (datatype is nvarchar)
001 12:10
002 01:25
003 10:01
004 21:20
我想将values列转换为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
为什么零隐藏......?对于float数据类型,2.10或2.1是相同的,但是用户会混淆2.1,比如2小时1分钟而不是2小时10分钟...
如何解决这个问题
预期产出
id values (datatype is float)
001 12.10
002 01.25
003 10.01
004 21.20
需要SQL查询帮助
答案 0 :(得分:2)
12.10
和12.1
都是相同浮点数的字符串表示(十二加十分之一)。如果您希望数据类型为 float ,则无法指定其字符串表示形式。你只能在将一个浮点数转换成一个字符串时这样做,这在你的情况下是一个毫无意义的练习(因为你已经将这个值作为一个字符串)。
另一种数据类型,而不是 float ,例如 decimal ,它具有固定的小数位数,可能是您的任务更合适的选择
答案 1 :(得分:0)
尝试
Select id, Cast(Replace(values, '':'', ''.'') as DECIMAl(10,2)) as values from table1