
问题1:
SELECT CAST(十进制为“ 123.456”)将为123.
如果要在小数点后两位.
您需要将以上内容更改为
SELECT CAST(“ 123.456”为十进制(38,2))===> 123.46
自动环绕!
问题2:
SELECT ROUND(123.75633,2,1),ROUND(123.75633,2)
上述SQL获得的两个值不同,前一个是123.75000,后一个是123.76000.
由于前者在小数点后被截断,因此保留了2位数字.
虽然后者没有被拦截,但四舍五入后自然会得到123.76000

ROUND
返回数字表达式并四舍五入到指定的长度或精度.
语法
ROUND(数字电子表达式,长度[,函数])
参数
numeric_e-xpression
表达精确数字或近似数字数据类型类别(位数据类型除外).
长度
是numeric_e-xpression的四舍五入精度. 长度必须是tinyint,smallint或int. 当length为正数时,numeric_e-xpression会四舍五入为length指定的小数位数. 当length为负数时,numerical_e-xpression将按长度指定的四舍五入到小数点左边.
功能
是要执行的操作类型. 函数必须是tinyint,smallint或int. 如果省略function或function的值为0(默认值),则numeric_e-xpression将被舍入. 如果指定的值为0以外的值,那么numeric_e-xpression将被截断.

返回类型
返回与numeric_e-xpression相同的类型.
评论
ROUND始终返回一个值. 如果length为负数且大于小数点前的位数,则ROUND将返回0.
样本结果
回合(748.58,-4)0
当length为负数时,无论哪种数据类型,ROUND都会返回四舍五入的numeric_e-xpression.
样本结果
ROUND(748.58,-1)750.00
回合(748.58,-2)700.00
回合(748.58,-3)1000.00

示例
A. 使用ROUND和估算值
下面的示例显示两个表达式,表示使用了ROUND函数,最后一个数字始终是估计值.
选择ROUND(123.9994,3),ROUND(123.9995,3)
GO
以下是结果集:
----------- -----------
123.9990 124.0000
B. 使用ROUND和舍入近似值
以下示例显示了舍入和近似值.
声明结果

选择ROUND(123.4545sql decimal 四舍五入,2)
123.4500
选择ROUND(123.45,-2)
100.00
C. 使用ROUND截断
下面的示例使用两个Select语句来说明舍入和截断之间的区别. 第一条语句将结果取整. 第二条语句将结果截断.
声明结果
选择ROUND(150.75,0)
151.00
选择ROUND(150.75sql decimal 四舍五入,0,1)
150.00
--------------------------------------------------- -----------------------------日期差异------------------ ---------
当DateDiff(dd,借用日期,getdate())> 30时,DateDiff(dd,借用日期,getdate())* [单价] * 1.012否则0结束
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-163676-1.html
这正是美国老大地位蹋落的表现