函数及自定义函数

SQL Server中的函数(字符串函数,日期函数,数学函数,系统函数)

字符串函数(用于控制返回给用户的字符串)

1.charindex 寻找一个指定的字符串在另一个字符串中的起始位置    select charindex ('JBNS','my Jbns course',1)返回:4

2.len       返回传递给它的字符串长度                selectlen("sql server课程")返回:12

3.upper     把传递给它的字符串转换为大些            selectupper('sql server课程')返回:SQL SERVER课程

4.Ltrim     清除字符左边的空格                      selectltrim(' 周智宇 ')返回:周智宇 (后面的空格保留)

5.Rtrim     清除字符右边的空格                      selectRtrim(' 周智宇 ')返回:  周智宇(前面的空格保留)

6.Right     从字符串右边返回指定数目的字符          selectRight('买卖提,吐尔松',3)返回:吐尔松

7.replace   替换一个字符串中的字符                  selectReplace('莫乐可切,杨可',‘可’,‘兰’) 返回:莫乐兰切.杨兰

8.stuff  在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串  selectstuff('ABCDEFG',2,3,'我的音乐我的世界') 返回:A我的音乐我的世界EFG

日期函数(用于操作日期值)

1.getdate    取得当前的系统日期    select getdate()返回:今天的日期

2.dateadd    将指定的数值添加到指定的日期部分后的日期   select dateadd(mm,4,'01/01/2009')返回:以当前的日期格式返回05/01/2009

3.datediff    两个日期之间的指定日期部分的间隔           select dateiff(mm,'01/01/2009','05/01/2009')返回:4

4.datename   日期中指定日期部分的字符串形式      select datename(dw,'01/01/2000')返回;saturday或星期六

5.datepart   日期中指定日期部分的整数形式        select datepart(day,'01/15/2000')返回:15

数学函数(用于对数值进行代数运算)

1.rand       返回从0到1之间的随机float值         select rand()返回:0.79288062146374

2.abs        取数值表达式的绝对值                select abs(-43)返回:43

3.ceiling    取大于或等于指定数值,表达式的最小整数  select ceiling(43.5)返回:44

4.floor      取小于或等于指定表达式的最大整数       select floor(43.5)返回:43

5.power      取数值表达式的幂值                   select power(5,2)返回:25

6.round      将数值表达式四舍五入为指定精度       select round (43.543,1)返回:43.500

7.sign       对于整数返回+1,对于负数返回-1,对于0则返回0  select sign(-43)返回:-1

8.sqrt       取浮点表达式的平方根                  select sqrt(9)返回:3

系统函数(获取有关SQL Server中对象和设置的系统信息)

1.convert      用来转变数据类型         select convert(varchar(5),12345)返回:字符串12345

2.current_user  返回当前用户的名字      selectCurrent_user 返回:你登录的用户名

3.datalength    返回用于指定表达式的字节数   select datalength('中国A联盟') 返回:5

4.host_name     返回当前用户所登录的计算机名字   select host_name()返回:你所登录的计算机的名字

5.system_user   返回当前所登录的用户名称         select system_user返回:你当前所登录的用户名

6.user_name      从给定的用户ID返回用户名        select user_name(1)返回:从任意数据库中返回”dbo“

例:

1.年满20周岁的条件  datediff(dd,borndate,getdate())>=365*20

2.获取Email的域名  right(Email,len(Email) - charindex('@',Email))

3.获取当前日期的年,月,日  convert(varchar(4),datepart(YYYY,getdate()))

原文地址:https://www.cnblogs.com/xiaomayizoe/p/5082509.html