原sql语句:
SELECT SUM(VOLUME) oilSum, oil_short_name oilShortName,OIL_CODE oilCode FROM v_hoseout hoseout
WHERE START_TIME >= '2019-11-06 15:04:37' AND END_TIME <= '2019-11-13 15:04:37' AND ORG_ID IN ( 309 ) AND P_ORG_ID IN ( 308 ) GROUP BY OIL_CODE
结果:
加入decimal处理后
SELECT cast(SUM(VOLUME) AS decimal(10,2)) oilSum, oil_short_name oilShortName,OIL_CODE oilCode FROM v_hoseout hoseout
WHERE START_TIME >= '2019-11-06 15:04:37' AND END_TIME <= '2019-11-13 15:04:37' AND ORG_ID IN ( 309 ) AND P_ORG_ID IN ( 308 ) GROUP BY OIL_CODE
结果:
decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。
“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入,会报超出范围的错误。