繁体   English   中英

SQL-将数字转换为十进制

[英]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 在这种情况下,您确实需要在除以之前将初始值转换为numericdecimal

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM