将小数反转为查询

时间:2014-06-19 13:53:12

标签: sql-server-2005-express

我有一个显示为数字字段的货币列。因此,'$ 3.15'被记录为'315'。在进行我的查询时,我希望在这些数字中放置小数两位,以便2066变为20.66,315变为3.15

我知道这很可能是一个简单的演员或转换,但我已经四处搜索,我找不到解决方案。我正在SQL Server 2005 Express中构建我的查询。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题是当你划分两个整数值时,结果也是一个整数,它将被截断。 (被称为:整数数学)

SELECT 2066/100 -- Output 20

为避免截断,您应该将其中一个参数转换为数据类型,该数据类型可以表示结果值:

SELECT 2066 / CONVERT(DECIMAL(19,2), 100) -- Output 20.660000

要强制精确度和比例,您也应该转换结果:

SELECT CONVERT(DECIMAL(19,2), (2066 / CONVERT(DECIMAL(19,2), 100))) -- Output 20.66

作为一般建议:

  • 要存储这些值,请使用整数的DECIMAL or NUMERIC data types。选择适合您需求的精度和比例(包括汇总数据,计算平均值等)
  • 当您在数据库服务器中显示数据(在应用程序中)时,应该完成所有格式化。