sql中的round函数和cast函数详解

来源:互联网 发布:掌上电力数据不更新 编辑:程序博客网 时间:2024/06/06 16:20

 <一>:ROUND函数主要返回数字表达式并四舍五入为指定的长度或精度。

语法格式如下:

ROUND(numeric_expression,length[,function])

参数说明:

1.numeric_expression:精确数字或近拟数字数据类型类别的表达式。

注意:bit数据类型除外。

2.length:是numeric_wxpression 将要四舍五入的精度。length必须是tinyint,smallint,或int.当length为正数时,numeric_expression四舍五入为lengthrn所指定的小数位数。当length为负数时,numeric_expression则按length所指定的在小数点的左边四舍五入。

3.function: 是要执行的打操作类型。

(1).ROUND(四舍五入)函数始终返回一个值。如果length是负数且大于小数点前的数字个数,ROUND将返回0.如下面的例子的返回值就为0:     ROUND(748.55,-4)

(2).当length是负数时,且不大于小数点前的数字个数,无论什么数据类型,ROUND函数都将返回一个四会五入的numeric_expression,如下例子所示:

ROUND(748.58,-1)=750.00          ROUND(748.58,-2)=700.00      ROUND(748.58,-3)=1000.00

(3)当length为正数时,ROUND函数的运算结果如下例子所示:

ROUND(123.4545,2)=123.4500    ROUND(123.4545,1)=123.5000      ROUND(123.4545,3)=123.4550

(4)使用ROUND函数截断。如下例子所示:

ROUND(150.75,0)=151.00       ROUND(1502.75,0,1)=1502.00

 

<二>:CAST函数:它具有和C0NVERT函数相似的功能。即将某种数据类型的表达式显式转换为另一种数据类型。

语法形式:CAST(expression as data_type)

参数说明:

1.expression:该参数是任何有效的SQL表达式。

2.as:用于分隔两个参数,在as之前的是要处理的数据,在as之后的是要转换的数据类型。

3.data_type:目标系统所提供的数据类型,包括bigint和sql_variant.不能使用用户自定义的数据类型。

显式转换使用 CAST 或 CONVERT 函数。
CAST 和 CONVERT 函数将数值从一个数据类型(局部变量、列或其它表达式)转换到另一个数据类型。例如,下面的 CAST 函数将数值 $157.27 转换成字符串 ''$157.27'':CAST ( $157.27 AS VARCHAR(10) )
CAST 函数基于 SQL-92 标准并且优先于 CONVERT。

当从一个 SQL Server 对象的数据类型向另一个转换时,一些隐性和显式数据类型转换是不支持的。例如,nchar 数值根本就不能被转换成 image 数值。nchar 只能显式地转换成 binary,隐性地转换到 binary 是不支持的。nchar 可以显式地或者隐性地转换成 nvarchar。

当处理 sql_variant 数据类型时,SQL Server 支持将具有其它数据类型的对象隐性转换成 sql_variant 类型。然而,SQL Server 并不支持从 sql_variant 数据隐性地转换到其它数据类型的对象。