sql取整,四舍五入,截取(Round、cast、convert)
sql取整,四舍五入,截取(Round、cast、
convert)
(一)ROUND()
(二)CAST()
(三)CONVERT()
1、ROUND
返回数字表达式并四舍五入为指定的长度或精度。
语法
ROUND ( numeric_expression , length [ , function ] )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
length
是numeric_expression 将要四舍五入的精度。length 必须是tinyint、smallint 或int。当length 为正数时,numeric_expression 四舍五入为length 所指定的小数位数。当length 为负数时,numeric_expression 则按length 所指定的在小数点的左边四舍五入。
function
是要执行的操作类型。function 必须是tinyint、smallint 或int。如果省略function 或function 的值为0(默认),numeric_expression 将四舍五入。当指定0 以外的值时,将截断numeric_expression。
返回类型
返回与numeric_expression 相同的类型。
注释
trunc函数截取整数
ROUND 始终返回一个值。如果length 是正数。
示例
select ROUND(748.588, 1)
select ROUND(748.588, 2)
select ROUND(748.588, 2,0)
select ROUND(748.588, 2,1)
select ROUND(748.588, 2,-2)
结果
748.600
748.590
748.590
748.580
748.580
ROUND 始终返回一个值。如果length 是负数且大于小数点前的数字个数,ROUND 将返回0。
示例
select ROUND(748.58, -4)
结果
当length 是负数时,无论什么数据类型,ROUND 都将返回一个四舍五入的numeric_expression。
示例
select ROUND(748.58, -1)
select ROUND(748.58, -2)
select ROUND(748.58, -3)
结果
750.00
700.00
1000.00
2、CAST()
select ROUND(748.588, 1)
select cast(round(1222.5255,2) as numeric(20,3))
select cast(round(1222.5255,2) as numeric(20,1))
CAST将一种数据类型的表达式转换为另一种数据类型的表达式。
语法
CAST (expression AS data_type [ (length ) ] )
select cast(1222.5255 as numeric(20,1))
取数字1222.5255 的20位以内的数,其中保留1位小数
3、CONVERT()
定义和用法
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
语法
CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。
实例
下面的脚本使用CONVERT() 函数来显示不同的格式。我们将使用GETDATE() 函数来获得当前的日期/时间:
select CONVERT(decimal,12.12*10)/10
CONVERT(V ARCHAR(19),GETDA TE())
CONVERT(V ARCHAR(10),GETDA TE(),110)
CONVERT(V ARCHAR(11),GETDA TE(),106)
CONVERT(V ARCHAR(24),GETDA TE(),113)
结果类似:
12.100000
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。