Sybase 函数
   
  Sybase字符串函数
  长度和语法分析 
 datalength(char_expr) 
 在char_expr中返回字符的长度值,忽略尾空 
 substring(expression,start,length) 
 返回部分字符串 
 right(char_expr,int_expr) 
 返回char_expr右边的int_expr字符 
 基本字符串运算 
 upper(char_expr) 
 把char_expr转换成大写形式 
 lower(char_expr) 
 把char_expr转换成小写形式 
 space(int_expr) 
 生成有int_expr个空格的字符串 
 replicate(char_expr,int_expr) 
 重复char_expr,int_expr次 
 stuff(expr1,start,length,expr2) 
 用expr2代替epxr1中start起始长为length的字符串 
 reverse(char_expr) 
 反写char_expr中的文本 
 ltrim(char_expr) 
 删除头空 
 rtrim(char_expr) 
 删除尾空 
 格式转换 
 ascii(char_expr) 
 返回char_expr中第一个字符的ASCII值 
 char(int_expr) 
 把ASCII码转换为字符 
 str(float_expr[,length[,decimal]]) 
 进行数值型到字符型转换 
 soundex(char_expr) 
 返回char_expr的soundex值 
 difference(char_expr1,char_expr2) 
 返回表达式soundex值之差 
 串内搜索 
 charindex(char_expr,expression) 
 返回指定char_expr的开始位置,否则为0 
 patindex("%pattern%",expression) 
 返回指定样式的开始位置,否则为0 
   
 datalength用于确定可变字符串的长度 
 soundex用于确定字符串是否发音相似 
 difference返回0-4之间的值,0表示最不相似,4表示最相似 
 通配符 
 % 匹配任何数量的字符或无字符 
 _ 匹配任何单个字符(空间占位符) 
 [] 规定有效范围,或某个"OR"条件 
     [ABG]   A,B,G 
     [A-C]   A,B,C 
     [A-CE-G] A,B,C,E,F,G 
     [^ABG] 除了A,B,G 
     [^A-C]   除了A,B,C 
   
 escape子句 
 用某个转义字符可在搜索字符串时将通配符作为文字来包含。 
 ANSI-89 SQL标准定义了escape子句指定某个转义字符 
 缺省情况下,[]来转义某个通配符,例: 
 select * from test_tab 
     where description like "%20[%]%" 
 语法: 
 like char_expression escape escape_character 
 例 
 select * from test_tab 
     where description like "%20#%%" escape "#" 
 + 可用于串接字符 
 select au_laname+","+au_fname from authors 
   
 数学函数 
 abs(numeric_expr) 
 返回指定值的绝对值 
 ceiling(numeric_expr) 
 返回大于或等于指定值的最小整数 
 exp(float_expr) 
 给出指定值的指数值 
 floor(numeric_expr) 
 返回小于或等于指定值的最大整数 
 pi() 
 返回常数3.1415926 
 power(numeric_expr,power) 
 返回numeric_expr的值给power的幂 
 rand([int_expr]) 
 返回0-1之间的随机浮点数,可指定基值 
 round(numeric_expr,int_expr) 
 把数值表达式圆整到int_expr指定的精度 
 sign(int_expr) 
 返回正+1,零0或负-1 
 sqrt(float_expr) 
 返回指定值的平方根 
 SQL SERVER支持所有标准的三角函数和其他有用的函数 
   
 日期函数 
 getdate() 
 返回当前的系统日期和时间 
 datename(datepart,date_expr) 
 以字符串形式返回date_expr指定部分的值,转换成合适的名字 
 datepart(datepart,date_expr) 
 作为整数返回date_expr值的指定部分 
 datediff(datepart,date_expr1,date_expr2) 
 返回date_expr2-date_expr1,通过指定的datepart度量 
 dateadd(datepart,number,date_expr) 
 返回日期,通过在date_expr上增加指定number的日期部件而产生的 
   
 datepart 
 日期部件   缩写   值范围 
 年 yy   1753-9999 
 季度 qq   1-4 
 月 mm   1-12 
 每年中的天   dy   1-366 
 天 dd   1-31 
 星期 wk   1-54 
 星期天 dw   1-7(1=sunday) 
 小时 hh   0-23 
 分钟 mi   0-59 
 秒 ss   0-59 
 毫秒 ms   0-999 
 例: 
 select invoice_no, 
     datediff(dd,date_shipped,getdate()) 
     from invoices 
     where balance_due>0 
   
 转换函数convert 
 此函数把值从一种类型改变成另一种类型 
 convert(datetype [(length)],expression) 
 select "Advance="+convert(char(12),advance) 
     from titles 
 
 日期转换 
 convert(datetype[(length)],expression,format) 
 format指定将日期转换为什么格式,有以下值: 
 没有世纪   有世纪 转换字符串中日期格式 
     0 or 100   mon dd yyy hh:miAM(or PM) 
 1 101 mm/dd/yy 
 2 102 yy.mm.dd 
 3 103 dd/mm/yy 
 4 104 dd.mm.yy 
 5 105 dd-mm-yy 
 6 106 dd mon yy 
 7 107 mon dd,yy 
 8 108 hh:mm:ss 
     9 or 109   mon dd,yyyy hh:mi:ss:mmmAM(or PM) 
 10 110 mm-dd-yy 
 11 111 yy/mm/dd 
 12 112 yymmdd 
   
 系统函数 
 函数       定义 
 访问和安全性信息 
 host_id()       客户进程的当前主机进程ID号 
 host_name()        客户进程的当前主计算机名 
 suser_id(["login_name"])   用户的SQL Server ID号 
 suser_name([server_user_id])   用户的SQL Server登录名 
 user_id(["name_in_db"]) 用户在数据库中的ID号 
 user_name([user_id]) 用户在数据库中的名字 
 user          用户在数据库中的名字 
 show_role()        用户的当前活动角色 
  数据库和对象信息 
 db_id(["db_name"]) 数据库ID号 
 db_name([db_id])    数据库名 
 object_id("objname") 数据库对象ID号 
 object_name(obj_id]) 数据库对象号 
 col_name(obj_id,col_id) 对象的栏名 
 col_length("objname","colname")   栏的长度 
 index_col("objname",index_id,key#)   已索引的栏名 
 valid_name(char_expr) 若char_expr不是有效标识符,则返回0 
  数据函数 
 datalength(expression) 按字节返回expression的长度 
 tsequal(timestamp1,timestamp2)   比较时戳值,若时戳值不匹配,则返回出错消息 
   
 isnull() 
 isnull函数用指定的值代替查询栏或合计中的空值 
 例: 
 select avg(isnull(total_order,$0)) 
     from invoices