SQL SERVER四舍五入你除了用ROUND还有其他方法吗?
2015-11-02 11:05
423 查看
引言
今天和测试沟通一个百分比计算方式时遇到一个问题, 我在存储过程里用到了强转CAST(32.678 AS DECIMAL(5,1)) 我认为该方式只会保留一位小数,我给测试的回复是我并没有用到四舍五入函数,数据也没有四舍五入,而测试说他们自己验证后觉的数据是经过四舍五入了的。 想到这里于是我再试了试存储过程的每个计算点,才发现了这个问题。ROUND
那么用到四舍五入并且保留小数点时我们肯定会首选ROUND函数, 如果字段的数据类型是decimal(18,10)时那么四舍五入后还会有很多0出现。CAST和CONVERT
其实我使用强转时并没有打算四舍五入结果,只是单纯为了得到符合我要求的数据,今天才发现这两个强转也会四舍五入结果,也就是说下面三个语句将会返回相同的结果值select ROUND(32.678,1) --32.700 select CAST(32.678 as DECIMAL(5,1)) --32.7 select convert(NUMERIC(5,1),32.678) --32.7
相关文章推荐
- postgresql常用的查询语句
- 对数据库视图view的理解
- MongoDB学习笔记(数据操作)
- Oracle11g,在SQL Developer里新建连接时出现错误的解决办法
- Oracle11g,在SQL Developer里新建连接时出现错误的解决办法
- MyBatis的动态SQL详解
- SQL 左外连接,右外连接,全连接,内连接
- mysql 用户表中多个host时的匹配规则
- hibernate 原生sql
- mysql 笔记 查询时分秒做条件
- SQL union 从字符串转换日期和/或时间时,转换失败(基础知识不牢固导致坑爹的问题)
- OracleParameter中参数名必须是DB中已有字段:【 ORA-01745: 无效的主机/绑定变量名】
- mysql添加外键时报errno: 150错误的解决方法
- mysql 索引总结
- Oracle SQL Developer 添加SQLServer 和Sybase 连接
- SQLite数据库浅谈
- mysql的行锁问题
- MySQL安装失败问题解决
- MySQL几个重要的目录
- SQL Server 2016 CTP3 集成R语言安装配置手册