--字符串函数
--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()