我有一个显示为数字字段的货币列。因此,'$ 3.15'被记录为'315'。在进行我的查询时,我希望在这些数字中放置小数两位,以便2066变为20.66,315变为3.15
我知道这很可能是一个简单的演员或转换,但我已经四处搜索,我找不到解决方案。我正在SQL Server 2005 Express中构建我的查询。
提前感谢您的帮助!
答案 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。选择适合您需求的精度和比例(包括汇总数据,计算平均值等)