SQLServer 2005 常用的函数

网络整理 - 07-27

  字符串函数:

  ● ASCII('a')=97---返回字母a对应的ASCII码

  ● CHAR('48')=0---返回48这个ASCII码对应的字符

  ● LCASE('ABcdE')="abced" 或 LOWER('ABcdE')="abced"(将给定字符串转为小写)

  ● UCASE('ABcdE')="ABCDE" 或 UPPER('ABcdE')="ABCDE"(将给定字符串转为大写)

  ● LTRIM(' fgf gh ')="fgf gh "(去掉给定字符串左边的空格)

  ● RTRIM(' fgf gh ')=" fgf gh"(去掉给定字符串右边的空格)

  ● LEN('sde123-TRE')=10(返回给定字符串的长度)

  ● LEFT('sde123-TRE',5)="sde12"(从给定字符串左边开始,取指定长度的字符)

  ● RIGHT('sde123-TRE',4)="-TRE"(从给定字符串右边开始,取指定长度的字符)

  ● SUBSTRING('sde123-TRE',3,6)="e123-T"(从给定字符串的指定位置开始,取指定长度的字符)

  ● CHARINDEX('23-','sde123-TRE')=5(返回第一个字符串在第二个字符串中出现的首位置,如果未出现则返回0)

  (注意:CHARINDEX('23T','sde123-TRE')=0)

  (注意:CHARINDEX('TRE','DFTRE345TREDGS')=3而CHARINDEX('TRE','DFTRE345TREDGS',4)=9,因为第三个参数未写则查找从第一个字符开始;否则从第三个参数指定的位置开始查找;第二个例子是从第4位开始查找,找到的第一个"TRE"位于第9位)

  ● REVERSE('SDF463')="364FDS"(将给定字符串反转)

  ● REPLACE('abcdefghicde','cde','xx')="abxxfghixx"(用第三个字符串替换第一个字符串中的所有第二个字符串)

  ● STR(123.457,5,2)="123.46"(将数字转为字符串,第一个参数是要转换的数字,第二个参数是转换后的字符串的最大长度,第三个参数指定保留几位小数,请注意,这种转换是四舍五入的)

  (注意:STR(123.457,2,2)="**"------因为5小于123.457的长度)

  ● STUFF('I AM NIMMY,WEI COME!',6,5,'RWM')="I AM RWM,WEI COME!"(将给定字符串中的某一部分删除并插入指定的字符串,第一个参数是待操作的字符串;第二个参数是要删除部分的起始位置;第三个参数是要删除部分的长度;第四个参数是要插入的字符串)

  (注意它和REPLACE的区别:STUFF('ERTY23TY',3,2,'K')='ERK23TY"而REPLACE('ERTY23TY','TY','K')="ERK23K")

  ● REPLICATE('ab',6)="abababababab"(返回指定数量的指定字符串)

  ● SPACE(6)=" "(返回指定数量的空格)

  ***********************************************************

  日期函数

  ● DATEPART() 返回给定日期的指定部分

  DATEPART(yy,'2003-12-27')=2003-------year/yyyy

  同义函数:year('2003-12-27')=2003

  DATEPART(mm,'2003-12-27')=12----month/m

  同义函数:month('2003-12-27')=12

  DATEPART(dd,'2003-12-27')=27----day/d

  同义函数:day('2003-12-27')=27

  DATEPART(dw,'2003-12-27')=7-----weekday(该日是一周的第七天,即星期六)

  DATEPART(hh,'13:55:34')=13------hour

  DATEPART(mi,'13:55:34')=55------minute/n

  DATEPART(ss,'13:55:34')=34------second/s

  ● DATEADD(mm,2,'2003-12-27')="2003-2-27"(返回给定日期之后或之前的日期,第一个参数是递增的刻度,可以是年月日时分秒<见上>,第二个参数是递增数目,第三个参数是给定日期)

  ● DATEDIFF(dd,'2003-12-23','2003-12-27')=4(返回两个给定日期之差,第一个参数指明差别的刻度,可以是年月日时分秒<见上>,第二个参数是开始日期,第二参数是结束日期)

  ● DATENAME(dw,'2003-12-27')="星期六"(返回给定日期的指定名称,第一个参数指明要返回的名称类型,可以是年月日星期时分秒<见上>,第二个参数是给定日期)

  ***************************************************************

  数学函数

  ● ABS(-2)=2 返回一个数字的绝对值

  ● 返回大于等于参数的最小整数

  CEILING(1.2)=2/CEILING(1.7)=2/CEILING(2)=2

  CEILING(-1.2)=-1/CEILING(-1.7)=-1/CEILING(-1)=-1

  ● 返回小于等于参数的最大整数

  FLOOR(1.2)=1/FLOOR(1.7)=1/FLOOR(1)=1

  FLOOR(-1.2)=-2/FLOOR(-1.7)=-2/FLOOR(-2)=-2

  ● 返回四舍五入的指定位数的小数

  ROUND(1.2,0)=1/ROUND(1.7,0)=2/ROUND(2,0)=2

  ROUND(-1.2,0)=-1/ROUND(-1.7,0)=-2/ROUND(-2,0)=-2

  ROUND(1.3536,2)=1.35/ROUND(1.3536,3)=1.354

  ● SQUARE(9)=81/ 返回参数的平方

  ● SQRT(9)=3/ 返回参数的平方根

  ● SIGN(0.01)=1/SIGN(1000)=1/SIGN(0)=0/SIGN(-0.3)=-1/SIGN(-10000)=-1

  判断参数是正数,负数还是0