SQL Server系列(5) -- 函数

来源:互联网 发布:气体检测仪数据 编辑:程序博客网 时间:2024/06/06 05:04

学习视频:

链接:http://pan.baidu.com/s/1i3BAJpr 密码:dja8


算数函数:

    三角函数:sin(浮点表达式),cos(浮点表达式),tan(浮点表达式),cot(浮点表达式)
    反三角函数:asin(浮点表达式),acos(浮点表达式),atan(浮点表达式)
    角度弧度转换函数:degrees,radians
    幂函数:exp(浮点表达式),log(浮点表达式),log10(浮点表达式),sqrt(浮点表达式)(求平方根)
    取近似值函数:ceiling(数字表达式),floor(数字表达式),round(数字表达式,整型表达式)
    符号函数:ABS(数字表达式),SIGN(数字表达式),随机函数,RAND,PI()函数


--求60度角的三角函数值
declare @test_var float,@test_value1 float,@test_value2 float,@test_value3 float
set @test_var=30
set @test_value1=SIN(@test_var)
set @test_value2=cos(@test_var)
set @test_value3=tan(@test_var)
select '30弧度角的正弦值为:',@test_value1
select '30弧度角的余弦值为:',@test_value2
select '30弧度角的正切值为:',@test_value3




--将60弧度转换为角度值
declare @test_var float,@test_value1 float
set @test_var=1.0471975511966
set @test_value1=DEGREES(@test_var)
select '60弧度转换为角度值为:',@test_value1


--求平方根
declare @test_var float,@test_value1 float
set @test_var=100
set @test_value1=sqrt(@test_var)
select '100的平方根为:',@test_value1


--求大于等于某值的最小整数
declare @test_var float,@test_value1 float
set @test_var=78.1
set @test_value1=ceiling(@test_var)
select '大于等于78.1的最小整数为:',@test_value1




--求小于等于某值的最大整数
declare @test_var float,@test_value1 float
set @test_var=78.9
set @test_value1=floor(@test_var)
select '大于等于78.9的最小整数为:',@test_value1


--将数值四舍五入
declare @test_var float,@test_value1 float
set @test_var=78.95164981
set @test_value1=round(@test_var,2)
select '四舍五入后的值为:',@test_value1


--取绝对值
declare @test_var float,@test_value1 float
set @test_var=-78.95164981
set @test_value1=abs(@test_var)
select '绝对值为:',@test_value1


--取出数值的正负符号
declare @test_var float,@test_value1 float
set @test_var=-78.95164981
set @test_value1=sign(@test_var)
select '符号为:',@test_value1


--随机数函数
declare @test_value1 float
set @test_value1=RAND()
print @test_value1


--返回圆周率
declare @test_value1 float
set @test_value1=pi()
print @test_value1


--字符转为ASCII码
declare @test_string1 char(60),@test_string2 char(60)
set @test_string1='H'
select 'ASCII码为:',ASCII(@test_string1)


--ASCII码转为字符
select 'ASCII码为:',char(71)


--小写字母转为大写字母
declare @test_string1 char(60),@test_string2 char(60)
set @test_string1='Hello,World'
set @test_string2=UPPER(@test_string1)
print @test_string2


--大写字母转为小写字母
declare @test_string1 char(60),@test_string2 char(60)
set @test_string1='HELLO,WORD'
set @test_string2=lower(@test_string1)
print @test_string2


--数字转换为字符(str函数)
declare @test_string1 float,@test_string2 char(60)
set @test_string1=1000
set @test_string2='  Hello,Word'
print str(@test_string1,7,2)+@test_string2
--str(),第二个参数是转化后的长度,第三个参数指保留小数点后几位


--计算字符串长度(LEN函数)
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1='Hello,Word!'
set @test_string2=LEN(@test_string1)
select '字符串Hello,Word!的长度为:',@test_string2


--计算字符串长度(LTRIM函数去掉首部空格后字符串长度)
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1='           Hello,Word!'
set @test_string2=LEN(LTRIM( @test_string1))
select '去掉首空格后字符串为:',@test_string2


--计算字符串长度(LTRIM函数去掉尾部空格后字符串长度)
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1=' Hello,Word!       '
set @test_string2=LEN(RTRIM( @test_string1))
select '去掉尾部空格后的字符串为:',@test_string2


--从左侧开始截取字符串
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1='Hello,Word!'
set @test_string2=left( @test_string1,8)
select '截取后的字符串为:',@test_string2


--从右侧开始截取字符串
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1='Hello,Word!'
set @test_string2=right( @test_string1,8)
select '截取后的字符串为:',@test_string2


--从指定位置截取指定长度字符串
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1='Hello,Word!'
set @test_string2=SUBSTRING(@test_string1,2,6)
select '截取后的字符串为:',@test_string2


--替换字符串中的字母
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1='Hello,World!'
set @test_string2=replace(@test_string1,'l','a')
select '输出结果为:',@test_string2


--space函数
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1='Hello,World!'
set @test_string2=@test_string1+SPACE(10)+'空格后的内容'
select '输出结果为:',@test_string2


--替换字符串中指定字符
declare @test_string1 varchar(60),@test_string2 varchar(60)
set @test_string1='Hello,World!'
set @test_string2=stuff(@test_string1,2,3,'替换后的内容')
select '输出结果为:',@test_string2


--转换数据类型
declare @test_string1 int,@test_string2 varchar(60)
set @test_string1=3000
print '变量值为:'+cast(@test_string1 as varchar(30))


--转换数据类型
declare @test_string1 int,@test_string2 varchar(60)
set @test_string1=3000
print 'Hello,World!'+convert(varchar(30),@test_string1)


--获取当前时间
declare @test_string1 varchar(100),@test_string2 varchar(60)
set @test_string1=GETDATE()
print '当前时间为:'+@test_string1


--获取当前年份
declare @test_string1 varchar(100),@test_string2 varchar(60)
set @test_string1=YEAR(GETDATE())
print '当前年份为:'+@test_string1
--获取当前月份
declare @test_string1 varchar(100),@test_string2 varchar(60)
set @test_string1=month(GETDATE())
print '当前月份为:'+@test_string1
--获取当前日
declare @test_string1 varchar(100),@test_string2 varchar(60)
set @test_string1=day(GETDATE())
print '当前日为:'+@test_string1


--以字符串型数据返回日期的指定部分(datename函数)
declare @test_var1 varchar(100),@test_var2 varchar(100),@test_var3 varchar(100)
set @test_var1=DATENAME(hour,getdate())
set @test_var2=DATENAME(MINUTE,getdate())
set @test_var3=DATENAME(SECOND,getdate())
print '当前系统时间为:'+@test_var1+'时'
print '当前系统时间为:'+@test_var2+'分'
print '当前系统时间为:'+@test_var3+'秒'


--以整型数据返回日期的指定部分(datepart函数)
declare @test_var1 int,@test_var2 int,@test_var3 int
set @test_var1=datepart(HOUR,getdate())
set @test_var2=datepart(MINUTE,getdate())
set @test_var3=datepart(SECOND,getdate())
print '当前系统时间为:'+cast(@test_var1 as varchar(100))
print '当前系统时间为:'+cast(@test_var2 as varchar(100))
print '当前系统时间为:'+cast(@test_var3 as varchar(100))


--增加时间(dateadd函数)
declare @test_var1 datetime,@test_var2 datetime
set @test_var1=dateadd(DAY,10,getdate())
set @test_var2=dateadd(DAY,-10,getdate())
print '改变后的时间为:'+cast(@test_var1 as varchar(100))
print '改变后的时间为:'+cast(@test_var2 as varchar(100))


--返回两个日期之间的差(datediff函数)
DATEDIFF(datepart,startpart,endpart)


--创建自定义函数
格式:
Create Function 函数名(参数 参数类型) returns 返回值数据类型 
as
begin
程序块
end


eg:
create Function test_funcA(@test_var int) returns int 
as
begin
declare @sum int
set @sum=@test_var*8
return @sum
end


--函数的调用
declare @test_var int
set @test_var=0
while @test_var<=20
begin
print dbo.test_funcA(@test_var)
set @test_var+=1
end











































0 0
原创粉丝点击