SQL 一些常用的函数整理
一.与编码有关:
1.char() 2.ascII() 3.unicode() 4.Nchar()
select ascii('A') 结果为:65,ascii()函数的作用是转换为acsii码
select char(65) 结果为:A,char()函数的作用是转换为字符串
select unicode('Anv') 结果为:65 按照 Unicode 标准的定义,返回输入表达式的第一个字符的整数值。
select nchar(65) 结果为:A 根据 Unicode 标准的定义,返回具有指定的整数代码的 Unicode 字符。
二.截取
1.left,2.right, 3.substring
1.left('——',n): 在'——'中从左边数取n个
2.right('——',n): 在‘——’中从右边数取n个
3.substring('——',m,n):在‘——’中,从第m个开始,取n个
例:
select left('abcde',3) 结果为:abc
select substring ('abcdefg',2,5) 结果为:bcdef
select substring ('我爱你,中国!',3,3) 结果为:你,中
三.替换
stuff('——',m,n,'__')把'——'中第m个开始后n个用'__'替换
replace('__','n','m')把'__'中的'n'用'm'替换
例:
select stuff('intkisf',3,4,'100') 结果为:in100f
select replace('ABCDE','C','b') 结果为:ABbDE
四.大小写
1.upper('__') 把小写都变成大写
2.lower('__') 把大写都变成小写
例:
select upper('ABcde') 结果为:ABCDE
select lower('ABcde') 结果为:abcde
五.空格
1.ltrim()去掉最左面的空格
2.rtrim()去掉最右面的空格
3.space(m)增加m个空格
六.查找
1.charindex('__','***')查找'__'在'***'中第一次出现的位置
2.charindex('__','***',m)表示从第m个开始找'__'在'***'中第一次出现的位置
3.patindex('%ade%','abcdefg')
以下示例使用 COLLATE 函数显式指定要搜索的表达式的排序规则。
SELECT PATINDEX ( '%ein%', 'Das ist ein Test' COLLATE Latin1_General_BIN) ;
七.常规
1.len(''):字符个数
2.reverse('')把字符串倒转
3.str() 返回由数字数据转换来的字符数据。
例:
select len('AB') 结果:2
select reverse('ABCDE') 结果:EDCBA
SELECT STR(123.45, 8,1) 结果: 123.5
八.转换函数
CONVERT(data_type,expression_r_r[,style])此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.
CAST
SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
九.日期函数
1.datetime()返回当前数据库系统时间戳,返回值的类型为 datetime,并且不含数据库时区偏移量。
2.ATEPART(datepart,date)返回表示指定 date 的指定 datepart 的整数。
3.DATEADD (datepart , number, date )将指定 number 时间间隔(有符号整数)与指定 date 的指定 datepart 相加后,返回该 date。
4.DATEDIFF ( datepart , startdate , enddate )返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数
5.DATENAME ( datepart , date )返回表示指定 date 的指定 datepart 的字符串
例:
select getdate() 结果:2010-04-24 17:53:59.140
select DATEPART("year",GETDATE()) 结果:2010
select datediff("dd",getdate(), DATEADD("dd",3,GETDATE())) 结果:3
select datename(yyyy,getdate()) 结果:2010