SQl Server 常用函数

--字符串函数 

--1,len和datalength函数 
declare @a varchar(50),@b char(30) 
select @a = '成都cd',@b='gocean' 
--select @a as 姓名 
print @a 
print len(@a) 
print datalength(@a) 
print @b 
print len(@b) 
print datalength(@b) 

--2,substring,right,left 
declare @a varchar(50) 
set @a = 'microsoft' 
print substring(@a,2,3) 
print right(@a,4) 
print left(@a,5) 

--3,trim,rtrimm,ltrim 
declare @a nvarchar(30),@b nchar(30) 
set @a = '     dog' 
set @b = '     dog' 
print len(@a) 
print rtrim(@a) 
print ltrim(@a) 
print len(rtrim(@a)) 
print len(ltrim(@a)) 
print datalength(@a) 
print datalength(@b) 

--char varchar 在存储英文字符和数字的时候都按一个字节存储 


--4,ascii,char 
declare @a varchar(10),@b int 
set @a = 'abc' 
set @b = 48 -- 0-9 :48-57, a-z:97-122 
print ascii(@a) --返回字符串表达式中最左侧的字符的ASCII码值 
--print ascii(@a) + '12' 
--print ascii(SUBSTRING(@a,len(@a),1)) 
--print ascii(right(@a,1)) 
print char(@b)  --将整型的ASCII码值转换为字符 

--5,nchar,unicode 
declare @a nvarchar(10),@b int 
set @a = 'xyz' 
set @b = 49 -- 0-9 :48-57, a-z:97-122 
print unicode(@a) --返回字符串表达式中最左侧的字符的unicode码值 
print nchar(@b)  --将整型的unicode码值转换为字符 

--6,lower upper 
declare @a varchar(20),@b char(30) 
set @a = 'micRosofT' 
set @b = 'MicroSoFt' 
print @a 
print lower(@a) 
print @b 
print upper(@b) 


--7,charindex 返回字符串中制定表达式的开始位置 
select '开始位置' = charindex('计算机','成都金海洋计算机科技发展有限公司') 
--select charindex('计算机','成都金海洋计算机科技发展有限公司') 开始位置 
declare @strIndex varchar(20) 
set @strIndex = '成都金海洋计算机科技发展有限公司' 
select charindex('计算机',@strIndex) 开始位置1,charindex('计算机','成都金海洋计算机科技发展有限公司') 开始位置2 

--8,space(返回重复的空格组成的字符串), replicate(以指定的次数重复表达式) 
select replicate('*',10),space(10),replicate('SQL Server',2),space(10),replicate('*',10) 
print replicate('*',10) + space(10) + replicate('SQL Server',2) + space(10) + replicate('*',10) 

--9,reverse 反转字符串 
declare @a varchar(30) 
set @a = 'Microsoft' 
print @a 
print reverse(@a) 

--10,stuff 替换字符串 
declare @a varchar(50) 
set @a = '你好,四川' 
print stuff(@a,4,1,'成都') 
print stuff(@a,4,2,'成都') 
print stuff(@a,4,5,'成都') 

--11,replace 
select replace('我想去中国','中国','成都') as 目的地 

--12,quotename 
select quotename('hello','{}') 
select quotename('hello','[]') 
select quotename('hello') 

--13, str(浮点表达式,[长度,[小数]])    其中长度包括小数点,符号,数字和空格,长度默认值为10,小数默认位数为0 
declare @a int,@b decimal(4,2) 
set @a = 25 
set @b = 36.59 
--print @b 
print str(@a,len(cast(@a as varchar(30)))) 
--print str(@a,len(cast(@a as varchar(30))),0) 
print str(@b,5,2) 
print len(str(@a)) 
print len(str(@b,5,2)) 


--日期函数 

--1,getdate year,month,day 
select getdate(),year(getdate()),month(getdate()),day(getdate()) 
    
--2,datediff    返回值为integer类型 
select 'gocean的年龄是:' + cast(datediff(yy,'1996/10/03',getdate()) as char(2)) + '岁' as 信息 --根据生日取多少岁 
select datediff(yy,'1982/11/23',getdate()) 
select datediff(mm,'1982/11/23',getdate()) 
select datediff(dd,'1982/11/23',getdate()) 

--3,datename 
print datename(yy,getdate())--年 
print datename(mm,getdate())--月 
print datename(dd,getdate())--日 

print datename(hh,getdate())--时 
print datename(mi,getdate())--分 --print datename(n,getdate()) 
print datename(ss,getdate())--秒 
print datename(ms,getdate())--毫秒    
print datename(hhmmss,getdate()) 

Select CONVERT(varchar(100), GETDATE(), 24)--取日期 
Select CONVERT(varchar(100), GETDATE(), 23)--取时间 
--1900-01-01 02:30:00.000 

Select cast('15:30' as datetime) --自动加上1900-01-01 
Select len(CONVERT(varchar(100), cast('1900-01-01 02:30:00.000' as datetime), 24)) --长度 
Select CONVERT(varchar(100), cast('1900-01-01 02:30:00.000' as datetime), 24) --取日期 
select CONVERT(varchar(10), getdate(), 120)--取日期 

select cast('1900-01-01 02:30:31.000' as smalldatetime) --smalldatetime精确到1分钟,大于等于30秒,向分钟进1分钟,小于30秒舍去 


print datename(w,getdate())--星期几 
print datename(dw,getdate())--星期几 
print datename(ww,getdate()) --当前年的第多少周 


print datename(qq,getdate())-- 刻钟 
print datename(y,getdate()) -- 当前年的第多少天 
print datename(dy,getdate()) --当前年的第多少天 



--4,datepart 
print datepart(yy,getdate())--年 
print datepart(mm,getdate())--月 
print datepart(dd,getdate())--日 

print datepart(hh,getdate())--时 
print datepart(mi,getdate())--分 --print datepart(n,getdate()) 
print datepart(ss,getdate())--秒 
print datepart(ms,getdate())--毫秒    

print datepart(w,getdate())--星期几 
print datepart(dw,getdate())--星期几 
print datepart(ww,getdate()) --当前年的第多少周 


print datepart(qq,getdate())-- 刻钟 
print datepart(y,getdate()) -- 当前年的第多少天 
print datepart(dy,getdate()) --当前年的第多少天 


--系统综合函数 
select newid(),host_id(),host_name(),user_name() 
--版本查询 
select @@version 
select @@version,@@servername,@@servicename,@@language,@@max_connections 
SELECT    SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') 


declare @a varchar(30) 
set @a = '1241242' 
declare @b int 
set @b = convert(int,@a) 
--set @b = cast(@a as int) 
print @b 



--数学函数 
print pi() 
print power(2,3) 
print sin(30*pi()/180) 
print abs(-20) 
print sqrt(2) 
print sqrt(9) 
print rand() 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值