[英]SQL - Convert number to decimal
我正在尝试将数字转换为带有两个小数位的小数。
SELECT CONVERT(DECIMAL(10,2),12345)
以上将返回12345.00,但我正在尝试实现123.45
您需要这样的东西:
SELECT CONVERT(DECIMAL(15,2),12345/100.0)
SELECT CONVERT(DECIMAL(10,2),CAST(12345 as float)/CAST(100 as float))
更正 :前提是有缺陷的,因为不带小数点的文字数字的数据类型为int
,而不是问题所暗示的numeric
。 在这种情况下,您确实需要在除以之前将初始值转换为numeric
或decimal
:
SELECT CONVERT(DECIMAL,12345)/100
要么
SELECT CAST(12345 AS DECIMAL)/100
( cast
是SQL标准,因此,如果您想将此方法应用于其他数据库,则将是首选方法。)
或者,您可以仅将小数点添加到除数,因为在对异构类型进行算术运算时,SQL Server将返回更精确的数据类型:
SELECT 12345/100.0
根据文档 , numeric
数据类型在功能上等同于decimal
数据类型,因此实际上没有理由在两者之间进行转换。 似乎您真正想要做的就是将您拥有的值除以100:
SELECT 12345/100
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.