SQL SERVER2005常用函数
 
一、字符串函数
a)         Charindex函数,用于返回一个字符串在另一个字符串中第一次出现的位置
                        i.              Select charindex(‘bj’,’I love bj’),此函数返回的结果是8
 
b)        Upper函数,用于将小写字符转换成大写
                        i.              Select upper(‘abcde’),此函数返回的结果是ABCDE
 
c)         Ltrim函数,用于除去字符串左边的空格
                        i.              Select ltrim(‘   I love bj’),此函数返回的结果是I love bj
 
d)        Rtrim函数,用于除去字符串右边的空格
                        i.              Select rtrim(‘   I love bj   ’),此函数返回结果是    I love bj
 
e)         Replace函数,用于将字符串中的一个字符替换成另一个字符
                        i.              Select replace(‘abcdedd’,’d’,’f’),此函数返回的结果是abcfeff
 
二、日期函数
a)         Getdate()函数,用于返回当前系统时间
b)        Dateadd()函数,用于在日期的某部分上加上一定的值
                        i.              Select dateadd(mm,3,’02-09-2009’),此函数返回的结果是05-09-2009
 
c)         Datepart(),用于返回指定日期某部分的整数值
                        i.              Select datepart(year,’02-09-2009’),此函数返回的结果2009
 
d)        Datename(),用于返回日期所处的名称
                        i.              Select datename(dw,’02-09-2009’),此函数会返回这一个日期对应的是星期几
e)         Datediff(),用于比较日期指定部分的差异
Select datediff(dd,’02-09-2009’,’02-21-2009’),此函数会返回这两个日期间的差值12
 
三、数学函数
a)         Abs()函数,返回该数值的绝对值,ABS-89)的结果为89
b)        Power()函数,用于计算数值的幂运算,POWER52)结果为25
c)         Round()函数,用于对数值进行四舍五入的运算,ROUND3.14234,2)返回3.14,括号后面的2用于表示数值的精度
d)        Ceiling()函数,用于返回一个大于或等于现有数值的最小整数
                        i.              Ceiling(34.5),返回的结果是35
                      ii.              Ceiling(34.0),返回的结果是34
e)         Floor()函数,用于返回一个小于或等于现有数值的最大整数
                        i.              Floor(34.5),返回的结果是34
                      ii.              Floor(34.0),返回的结果是34
 
四、聚合函数
a)         Sum( ),用于求和
b)        Avg(),用于求平均值
c)         Max(),用于计算数值的最大值
d)        Min(),用于计算数值的最小值
e)         Count(),用于计数统计
注意:用聚合函数在查询数据表中的某一列时,如果不仅要查询这一列的内容,则需要用GROUP BY子句来配合使用,例如:
       Select sum(charge),name from accountbill where name=’wjc’ group by name
 
五、系统函数
a)         Convert( )用于数据类型转换
                        i.              Convert(varchar(12),1234),返回结果是字符串型数据‘1234
b)        Cast( )用于数据类型转换,很少平台支持此函数
                        i.              Cast(12 as varchar(3)),返回的是字符串‘12
 
 
 
SQL SERVER2005函数应用实例
 
一、select ‘用户’+phonenumber+’市话费用’+cast(charge as varchar(20))+’’ as 市话费用 from accountbill where ispaid=0 and calltype=0
作用:从accountbill表中用户市话(calltype=0)的欠费(ispaid=0)费用,其中用到了CAST函数,charge列的值本是货币的数据,为了实现和字符串相连,将其转换成字符串的数据
 
二、select ‘用户’+phonenumber+’通话时长’+cast(ceiling(datediff(ss,starttime,endtime)\60) as varchar(20))+’分钟’ from “history-call” where phonenumber=’13391819904’
作用:查询手机号吗是13391819904的用户通话时长,不足一分钟的按一分钟计算;其中用到DATEDIFF函数来计算出用户的通话时长,用CEILING函数来实现不足一分钟按一分钟计算的要求
 
三、select      diff(dd,cast(,cast(year(dateadd(mm,1,accounttime))as varchar(10))+cast(month(dateadd(mm,1,accounttime)) as varchar(10)) as datetime), cast(‘2009-10-31’ as datetime) as 欠费天数 from acountbill where phonenumber=’13391819904’
作用:查询手机号码为13391819904的用户拖欠还款的天数