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 相同的类型。
注释
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)
结果
0
当 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,sty
le)data_type(length)
规定目标数据类型
(带有可选的长度)。data_to_be_converted
含有需要转换的值。style 规定日期时间的输出
格式。
实例
下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE()
函数来获
得当前的日期时间:
select
CONVERT(decimal,12.12*10)10
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
结果类似:
12.100000
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008
16:25:46.635