mysql 函数

jsj_spark 贡献于2012-02-24

作者 jsj_spark  创建于2011-11-22 11:53:00   修改者jsj_spark  修改于2011-11-22 12:08:00字数17771

文档摘要:mysql 函数
关键词:

1. ASCII(str)      返回字符串str的第一个字符的ASCII值(str是空串时返回0)    mysql> select ASCII('2');      -> 50    mysql> select ASCII(2);      -> 50    mysql> select ASCII('dete');      -> 100    2. ORD(str)      如果字符串str句首是单字节返回与ASCII()函数返回的相同值。     如果是一个多字节字符,以格式返回((first byte ASCII code)*256+(second byte ASCII code)[*256+third byte ASCII code...]    mysql> select ORD('2');      -> 50         3. CONV(N,from_base,to_base)      对数字N进制转换,并转换为字串返回(任何参数为NULL时返回NULL,进制范围为2-36进制,当to_base是负数时N作为有符号数否则作无符号数,CONV以64位点精度工作)    mysql> select CONV("a",16,2);      -> '1010'   mysql> select CONV("6E",18,8);      -> '172'   mysql> select CONV(-17,10,-18);      -> '-H'   mysql> select CONV(10+"10"+'10'+0xa,10,10);      -> '40'        4. BIN(N)      把N转为二进制值并以字串返回(N是BIGINT数字,等价于CONV(N,10,2))    mysql> select BIN(12);      -> '1100'      5. OCT(N)      把N转为八进制值并以字串返回(N是BIGINT数字,等价于CONV(N,10,8))    mysql> select OCT(12);      -> '14'        6. HEX(N)      把N转为十六进制并以字串返回(N是BIGINT数字,等价于CONV(N,10,16))    mysql> select HEX(255);      -> 'FF'        7. CHAR(N,...)      返回由参数N,...对应的ASCII代码字符组成的一个字串(参数是N,...是数字序列,NULL值被跳过)     mysql>  select CHAR(77,121,83,81,'76');      -> 'MySQL'   mysql> select CHAR(77,77.3,'77.3');      -> 'MMM'        8. CONCAT(str1,str2,...)      把参数连成一个长字符串并返回(任何参数是NULL时返回NULL)     mysql> select CONCAT('My', 'S', 'QL');      -> 'MySQL'   mysql> select CONCAT('My', NULL, 'QL');      -> NULL   mysql> select CONCAT(14.3);      -> '14.3'      9. LENGTH(str)     OCTET_LENGTH(str)    CHAR_LENGTH(str)    CHARACTER_LENGTH(str)     返回字符串str的长度(对于多字节字符CHAR_LENGTH仅计算一次)    mysql> select LENGTH('text');      -> 4    mysql> select OCTET_LENGTH('text');      -> 4       10. LOCATE(substr,str)     POSITION(substr IN str)      返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)    mysql> select LOCATE('bar', 'foobarbar');      -> 4    mysql> select LOCATE('xbar', 'foobar');      -> 0          11. LOCATE(substr,str,pos)     返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)    mysql> select LOCATE('bar', 'foobarbar',5);      -> 7       12. INSTR(str,substr)      返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)    mysql> select INSTR('foobarbar', 'bar');      -> 4    mysql> select INSTR('xbar', 'foobar');      -> 0        13. LPAD(str,len,padstr)      用字符串padstr填补str左端直到字串长度为len并返回    mysql> select LPAD('hi',4,'??');      -> '??hi'        14. RPAD(str,len,padstr)      用字符串padstr填补str右端直到字串长度为len并返回    mysql> select RPAD('hi',5,'?');      -> 'hi???'      15. LEFT(str,len)      返回字符串str的左端len个字符    mysql> select LEFT('foobarbar', 5);      -> 'fooba'      16. RIGHT(str,len)      返回字符串str的右端len个字符     mysql> select RIGHT('foobarbar', 4);      -> 'rbar'      17. SUBSTRING(str,pos,len)     SUBSTRING(str FROM pos FOR len)     MID(str,pos,len)      返回字符串str的位置pos起len个字符(使用FROM的丑陋语法是ANSI SQL92标准)    mysql> select SUBSTRING('Quadratically',5,6);      -> 'ratica'      18. SUBSTRING(str,pos)     SUBSTRING(str FROM pos)      返回字符串str的位置pos起的一个子串    mysql> select SUBSTRING('Quadratically',5);      -> 'ratically'   mysql> select SUBSTRING('foobarbar' FROM 4);      -> 'barbar'      19. SUBSTRING_INDEX(str,delim,count)      返回从字符串str的第count个出现的分隔符delim之后的子串(count为正数时返回左端,否则返回右端子串)    mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);      -> 'www.mysql'   mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);      ->  'mysql.com'      20. LTRIM(str)      返回删除了左空格的字符串str    mysql> select LTRIM('  barbar');      -> 'barbar'      21. RTRIM(str)      返回删除了右空格的字符串str    mysql> select RTRIM('barbar   ');      -> 'barbar'      22. TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)      返回前缀或后缀remstr被删除了的字符串str(位置参数默认BOTH,remstr默认值为空格)    mysql> select TRIM('  bar   ');      -> 'bar'   mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx');      -> 'barxxx'   mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx');      -> 'bar'   mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz');      -> 'barx'      23. SOUNDEX(str)      返回str的一个同音字符串(听起来“大致相同”字符串有相同的同音字符串,非数字字母字符被忽略,在A-Z外的字母被当作元音)    mysql> select SOUNDEX('Hello');      -> 'H400'   mysql> select SOUNDEX('Quadratically');      -> 'Q36324'        24. SPACE(N)      返回由N个空格字符组成的一个字符串    mysql> select SPACE(6);      -> '      '        25. REPLACE(str,from_str,to_str)      用字符串to_str替换字符串str中的子串from_str并返回    mysql> select REPLACE('www.mysql.com', 'w', 'Ww');      -> 'WwWwWw.mysql.com'      26. REPEAT(str,count)      返回由count个字符串str连成的一个字符串(任何参数为NULL时返回NULL,count<=0时返回一个空字符串)    mysql>  select REPEAT('MySQL', 3);      -> 'MySQLMySQLMySQL'        27. REVERSE(str)      颠倒字符串str的字符顺序并返回    mysql> select REVERSE('abc');      -> 'cba'      28. INSERT(str,pos,len,newstr)      把字符串str由位置pos起len个字符长的子串替换为字符串newstr并返回    mysql> select INSERT('Quadratic', 3, 4, 'What');      -> 'QuWhattic'      29. ELT(N,str1,str2,str3,...)      返回第N个字符串(N小于1或大于参数个数返回NULL)    mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');      -> 'ej'   mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');      -> 'foo'      30. FIELD(str,str1,str2,str3,...)      返回str等于其后的第N个字符串的序号(如果str没找到返回0)    mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');      -> 2    mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');      -> 0       31. FIND_IN_SET(str,strlist)      返回str在字符串集strlist中的序号(任何参数是NULL则返回NULL,如果str没找到返回0,参数1包含","时工作异常)    mysql> SELECT FIND_IN_SET('b','a,b,c,d');      -> 2         32. MAKE_SET(bits,str1,str2,...)     把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应位置的字串选入字串集并返回(NULL串不添加到结果中)    mysql> SELECT MAKE_SET(1,'a','b','c');      -> 'a'   mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');      -> 'hello,world'   mysql> SELECT MAKE_SET(0,'a','b','c');      -> ''      33. EXPORT_SET(bits,on,off,[separator,[number_of_bits]])      按bits排列字符串集,只有当位等于1时插入字串on,否则插入off(separator默认值",",number_of_bits参数使用时长度不足补0而过长截断)     mysql> select EXPORT_SET(5,'Y','N',',',4)      -> Y,N,Y,N        34. LCASE(str)    LOWER(str)      返回小写的字符串str    mysql> select LCASE('QUADRATICALLY');      -> 'quadratically'  35. UCASE(str)     UPPER(str)      返回大写的字符串str    mysql> select UCASE('quadratically');      -> 'QUADRATICALLY'      36. LOAD_FILE(file_name)      读入文件并且作为一个字符串返回文件内容(文件无法找到,路径不完整,没有权限,长度大于max_allowed_packet会返回NULL)    mysql> UPDATE table_name SET blob_column=LOAD_FILE("/tmp/picture") WHERE id=1;       37. ABS(N)     返回N的绝对值    mysql> select ABS(2);        -> 2      mysql> select ABS(-32);        -> 32           38. SIGN(N)     返回参数的符号(为-1、0或1)    mysql> select SIGN(-32);        -> -1      mysql> select SIGN(0);        -> 0      mysql> select SIGN(234);        -> 1         39. MOD(N,M)       取模运算,返回N被M除的余数(同%操作符)      mysql> select MOD(234, 10);        -> 4      mysql> select 234 % 10;        -> 4      mysql>  select MOD(29,9);        -> 2         40. FLOOR(N)     返回不大于N的最大整数值    mysql> select FLOOR(1.23);        -> 1      mysql> select FLOOR(-1.23);        -> -2         41. CEILING(N)     返回不小于N的最小整数值    mysql> select CEILING(1.23);        -> 2      mysql> select CEILING(-1.23);        -> -1         42. ROUND(N,D)     返回N的四舍五入值,保留D位小数(D的默认值为0)    mysql> select ROUND(-1.23);        -> -1      mysql> select ROUND(-1.58);        -> -2      mysql> select ROUND(1.58);        -> 2      mysql> select ROUND(1.298, 1);        -> 1.3      mysql> select ROUND(1.298, 0);        -> 1         43. EXP(N)     返回值e的N次方(自然对数的底)    mysql> select EXP(2);        -> 7.389056      mysql> select EXP(-2);        -> 0.135335         44. LOG(N)     返回N的自然对数    mysql> select LOG(2);        -> 0.693147      mysql> select LOG(-2);        -> NULL         45. LOG10(N)     返回N以10为底的对数    mysql> select LOG10(2);        -> 0.301030      mysql> select LOG10(100);        -> 2.000000      mysql> select LOG10(-100);        -> NULL         46. POW(X,Y)      POWER(X,Y)       返回值X的Y次幂    mysql> select POW(2,2);        -> 4.000000      mysql> select POW(2,-2);        -> 0.250000       47. SQRT(N)     返回非负数N的平方根    mysql> select SQRT(4);        -> 2.000000      mysql> select SQRT(20);        -> 4.472136         48. PI()       返回圆周率     mysql> select PI();        -> 3.141593         49. COS(N)     返回N的余弦值    mysql> select COS(PI());      -> -1.000000      50. SIN(N)     返回N的正弦值     mysql> select SIN(PI());        -> 0.000000         51. TAN(N)     返回N的正切值    mysql> select TAN(PI()+1);        -> 1.557408         52. ACOS(N)     返回N反余弦(N是余弦值,在-1到1的范围,否则返回NULL)    mysql> select ACOS(1);        -> 0.000000      mysql> select ACOS(1.0001);        -> NULL      mysql> select ACOS(0);        -> 1.570796      53. ASIN(N)     返回N反正弦值    mysql> select ASIN(0.2);        -> 0.201358      mysql> select ASIN('foo');        -> 0.000000         54. ATAN(N)     返回N的反正切值    mysql> select ATAN(2);        -> 1.107149     mysql> select ATAN(-2);        -> -1.107149      55. ATAN2(X,Y)       返回2个变量X和Y的反正切(类似Y/X的反正切,符号决定象限)    mysql> select ATAN(-2,2);        -> -0.785398      mysql> select ATAN(PI(),0);        -> 1.570796         56. COT(N)     返回X的余切    mysql> select COT(12);        -> -1.57267341      mysql> select COT(0);        -> NULL         57. RAND()    RAND(N)       返回在范围0到1.0内的随机浮点值(可以使用数字N作为初始值)    mysql> select RAND();        -> 0.5925      mysql> select RAND(20);        -> 0.1811      mysql> select RAND(20);        -> 0.1811      mysql>  select RAND();        -> 0.2079      mysql> select RAND();        -> 0.7888         58. DEGREES(N)     把N从弧度变换为角度并返回    mysql> select DEGREES(PI());        -> 180.000000         59. RADIANS(N)     把N从角度变换为弧度并返回     mysql> select RADIANS(90);        -> 1.570796         60. TRUNCATE(N,D)       保留数字N的D位小数并返回    mysql> select TRUNCATE(1.223,1);        -> 1.2      mysql> select TRUNCATE(1.999,1);        -> 1.9      mysql> select TRUNCATE(1.999,0);        -> 1         61. LEAST(X,Y,...)       返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)    mysql> select LEAST(2,0);        -> 0      mysql> select LEAST(34.0,3.0,5.0,767.0);        -> 3.0      mysql> select LEAST("B","A","C");        -> "A"         62. GREATEST(X,Y,...)       返回最大值(其余同LEAST())    mysql> select GREATEST(2,0);        -> 2      mysql> select GREATEST(34.0,3.0,5.0,767.0);        -> 767.0      mysql> select GREATEST("B","A","C");        -> "C"            63. DAYOFWEEK(date)       返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)    mysql> select DAYOFWEEK('1998-02-03');        -> 3         64. WEEKDAY(date)       返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。      mysql> select WEEKDAY('1997-10-04 22:23:00');        -> 5      mysql> select WEEKDAY('1997-11-05');        -> 2         65. DAYOFMONTH(date)       返回date是一月中的第几日(在1到31范围内)      mysql> select DAYOFMONTH('1998-02-03');        -> 3         66. DAYOFYEAR(date)       返回date是一年中的第几日(在1到366范围内)      mysql> select DAYOFYEAR('1998-02-03');        -> 34         67. MONTH(date)       返回date中的月份数值      mysql> select MONTH('1998-02-03');        -> 2         68. DAYNAME(date)       返回date是星期几(按英文名返回)    mysql> select DAYNAME("1998-02-05");        -> 'Thursday'         69. MONTHNAME(date)       返回date是几月(按英文名返回)    mysql> select MONTHNAME("1998-02-05");        -> 'February'         70. QUARTER(date)       返回date是一年的第几个季度      mysql> select QUARTER('98-04-01');        -> 2         71. WEEK(date,first)      返回date是一年的第几周(first默认值0,first取值1表示周一是周的开始,0从周日开始)    mysql>  select WEEK('1998-02-20');        -> 7      mysql> select WEEK('1998-02-20',0);        -> 7      mysql> select WEEK('1998-02-20',1);        -> 8         72. YEAR(date)       返回date的年份(范围在1000到9999)      mysql> select YEAR('98-02-03');        -> 1998         73. HOUR(time)       返回time的小时数(范围是0到23)     mysql> select HOUR('10:05:03');        -> 10         74. MINUTE(time)       返回time的分钟数(范围是0到59)    mysql> select MINUTE('98-02-03 10:05:03');        -> 5         75. SECOND(time)       返回time的秒数(范围是0到59)     mysql> select SECOND('10:05:03');        -> 3         76. PERIOD_ADD(P,N)       增加N个月到时期P并返回(P的格式YYMM或YYYYMM)      mysql> select PERIOD_ADD(9801,2);        -> 199803         77. PERIOD_DIFF(P1,P2)       返回在时期P1和P2之间月数(P1和P2的格式YYMM或YYYYMM)    mysql> select PERIOD_DIFF(9802,199703);        -> 11         78. DATE_ADD(date,INTERVAL expr type)    DATE_SUB(date,INTERVAL expr type)      ADDDATE(date,INTERVAL expr type)      SUBDATE(date,INTERVAL expr type)     对日期时间进行加减法运算     (ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词,也可以用运算符+和-而不是函数     date 是一个DATETIME或DATE值,expr对date进行加减法的一个表达式字符串type指明表达式expr应该如何被解释     [type值 含义 期望的expr格式]:     SECOND 秒 SECONDS       MINUTE 分钟 MINUTES       HOUR 时间 HOURS       DAY 天 DAYS       MONTH 月 MONTHS       YEAR 年 YEARS       MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"       HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"       DAY_HOUR 天和小时 "DAYS HOURS"       YEAR_MONTH 年和月 "YEARS-MONTHS"       HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS"       DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"       DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"    expr中允许任何标点做分隔符,如果所有是DATE值时结果是一个DATE值,否则结果是一个DATETIME值)     如果type关键词不完整,则MySQL从右端取值,DAY_SECOND因为缺少小时分钟等于MINUTE_SECOND)     如果增加MONTH、YEAR_MONTH或YEAR,天数大于结果月份的最大天数则使用最大天数)      mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;        -> 1998-01-01 00:00:00      mysql> SELECT INTERVAL 1 DAY + "1997-12-31";        -> 1998-01-01      mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;        -> 1997-12-31 23:59:59      mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 SECOND);        -> 1998-01-01 00:00:00      mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 DAY);        -> 1998-01-01 23:59:59      mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND);        -> 1998-01-01 00:01:00      mysql> SELECT DATE_SUB("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND);        -> 1997-12-30 22:58:59      mysql> SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR);      -> 1997-12-30 14:00:00      mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);        -> 1997-12-02      mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");        -> 1999      mysql>  SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");        -> 199907      mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");        -> 20102         79. TO_DAYS(date)       返回日期date是西元0年至今多少天(不计算1582年以前)    mysql> select TO_DAYS(950501);        -> 728779      mysql> select TO_DAYS('1997-10-07');        -> 729669         80. FROM_DAYS(N)       给出西元0年至今多少天返回DATE值(不计算1582年以前)     mysql> select FROM_DAYS(729669);        -> '1997-10-07'         81. DATE_FORMAT(date,format)       根据format字符串格式化date值     (在format字符串中可用标志符:     %M 月名字(January……December)       %W 星期名字(Sunday……Saturday)       %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)       %Y 年, 数字, 4 位       %y 年, 数字, 2 位       %a 缩写的星期名字(Sun……Sat)       %d 月份中的天数, 数字(00……31)       %e 月份中的天数, 数字(0……31)       %m 月, 数字(01……12)       %c 月, 数字(1……12)       %b 缩写的月份名字(Jan……Dec)       %j 一年中的天数(001……366)       %H 小时(00……23)     %k 小时(0……23)          %h 小时(01……12)          %I 小时(01……12)       %l 小时(1……12)       %i 分钟, 数字(00……59)       %r 时间,12 小时(hh:mm:ss [AP]M)       %T 时间,24 小时(hh:mm:ss)       %S 秒(00……59)       %s 秒(00……59)       %p AM或PM       %w 一个星期中的天数(0=Sunday ……6=Saturday )       %U 星期(0……52), 这里星期天是星期的第一天       %u 星期(0……52), 这里星期一是星期的第一天       %% 字符% )    mysql>  select DATE_FORMAT('1997-10-04 22:23:00','%W %M %Y');        -> 'Saturday October 1997'      mysql> select DATE_FORMAT('1997-10-04 22:23:00','%H:%i:%s');        -> '22:23:00'    mysql> select DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j');        -> '4th 97 Sat 04 10 Oct 277'      mysql> select DATE_FORMAT('1997-10-04 22:23:00','%H %k %I %r %T %S %w');        -> '22 22 10 10:23:00 PM 22:23:00 00 6'         82. TIME_FORMAT(time,format)     和DATE_FORMAT()类似,但TIME_FORMAT只处理小时、分钟和秒(其余符号产生一个NULL值或0)       83. CURDATE()       CURRENT_DATE()     以'YYYY-MM-DD'或YYYYMMDD格式返回当前日期值(根据返回值所处上下文是字符串或数字)      mysql> select CURDATE();        -> '1997-12-15'      mysql> select CURDATE() + 0;        -> 19971215         84. CURTIME()      CURRENT_TIME()     以'HH:MM:SS'或HHMMSS格式返回当前时间值(根据返回值所处上下文是字符串或数字)        mysql> select CURTIME();        -> '23:50:26'      mysql> select CURTIME() + 0;        -> 235026         85. NOW()      SYSDATE()      CURRENT_TIMESTAMP()     以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前日期时间(根据返回值所处上下文是字符串或数字)       mysql> select NOW();        -> '1997-12-15 23:50:26'      mysql> select NOW() + 0;        -> 19971215235026         86. UNIX_TIMESTAMP()      UNIX_TIMESTAMP(date)       返回一个Unix时间戳(从'1970-01-01 00:00:00'GMT开始的秒数,date默认值为当前时间)    mysql> select UNIX_TIMESTAMP();        -> 882226357      mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');        -> 875996580         87. FROM_UNIXTIME(unix_timestamp)       以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回时间戳的值(根据返回值所处上下文是字符串或数字)       mysql> select FROM_UNIXTIME(875996580);        -> '1997-10-04 22:23:00'      mysql> select FROM_UNIXTIME(875996580) + 0;        -> 19971004222300         88. FROM_UNIXTIME(unix_timestamp,format)       以format字符串格式返回时间戳的值    mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');        -> '1997 23rd December 03:43:30 x'         89. SEC_TO_TIME(seconds)       以'HH:MM:SS'或HHMMSS格式返回秒数转成的TIME值(根据返回值所处上下文是字符串或数字)       mysql> select SEC_TO_TIME(2378);        -> '00:39:38'      mysql> select SEC_TO_TIME(2378) + 0;        -> 3938         90. TIME_TO_SEC(time)       返回time值有多少秒      mysql> select TIME_TO_SEC('22:23:00');        -> 80580      mysql> select TIME_TO_SEC('00:39:38');        -> 2378    91. SUM() 返回参数的和 92. VERSION() 返回当前实例的版本 SELECT VERSION(); 93. SESSION_USER() 返回目前连接的用户 SELECT SESSION_USER(); 94. SHOW PROCESSLIST; 返回目前正在运行的进程 95. MAX() MIN() AVG() 96. ENCRYPT() 加密字符串 SELECT ENCRYPT('ZHAOHANG'); 97. MD5() MD5值 SELECT MD5('ZHAOHANG'); 98. 数学函数 99. 1.绝对值 100. S:selectabs(-1)value 101. O:selectabs(-1)valuefromdual 102. 2.取整(大) 103. S:selectceiling(-1.001)value 104. O:selectceil(-1.001)valuefromdual 105. 3.取整(小) 106. S:selectfloor(-1.001)value 107. O:selectfloor(-1.001)valuefromdual 108. 4.取整(截取) 109. S:selectcast(-1.002asint)value 110. O:selecttrunc(-1.002)valuefromdual 111. 5.四舍五入 112. S:selectround(1.23456,4)value1.23460 113. O:selectround(1.23456,4)valuefromdual1.2346 114. 6.e为底的幂 115. S:selectExp(1)value2.7182818284590451 116. O:selectExp(1)valuefromdual2.71828182 117. 7.取e为底的对数 118. S:selectlog(2.7182818284590451)value1 119. O:selectln(2.7182818284590451)valuefromdual;1 120. 8.取10为底对数 121. S:selectlog10(10)value1 122. O:selectlog(10,10)valuefromdual;1 123. 9.取平方 124. S:selectSQUARE(4)value16 125. O:selectpower(4,2)valuefromdual16 126. 10.取平方根 127. S:selectSQRT(4)value2 128. O:selectSQRT(4)valuefromdual2 129. 11.求任意数为底的幂 130. S:selectpower(3,4)value81 131. O:selectpower(3,4)valuefromdual81 132. 12.取随机数 133. S:selectrand()value 134. O:selectsys.dbms_random.value(0,1)valuefromdual; 135. 13.取符号 136. S:selectsign(-8)value-1 137. O:selectsign(-8)valuefromdual-1 138. 14.圆周率 139. S:SELECTPI()value3.1415926535897931 140. O:不知道 141. 15.sin,cos,tan参数都以弧度为单位 142. 例如:selectsin(PI()/2)value得到1(SQLServer) 143. 16.Asin,Acos,Atan,Atan2返回弧度 144. 17.弧度角度互换(SQLServer,Oracle不知道) 145. DEGREES:弧度-〉角度 146. RADIANS:角度-〉弧度 147. 数值间比较 148. 18.求集合最大值 149. S:selectmax(value)valuefrom 150. (select1value 151. union 152. select-2value 153. union 154. select4value 155. union 156. select3value)a 157. O:selectgreatest(1,-2,4,3)valuefromdual 158. 19.求集合最小值 159. S:selectmin(value)valuefrom 160. (select1value 161. union 162. select-2value 163. union 164. select4value 165. union 166. select3value)a 167. O:selectleast(1,-2,4,3)valuefromdual 168. 20.如何处理null值(F2中的null以10代替) 169. S:selectF1,IsNull(F2,10)valuefromTbl 170. O:selectF1,nvl(F2,10)valuefromTbl 171. 21.求字符序号 172. S:selectascii('a')value 173. O:selectascii('a')valuefromdual 174. 22.从序号求字符 175. S:selectchar(97)value 176. O:selectchr(97)valuefromdual 177. 23.连接 178. S:select'11'+'22'+'33'value 179. O:selectCONCAT('11','22')33valuefromdual 180. 23.子串位置--返回3 181. S:selectCHARINDEX('s','sdsq',2)value 182. O:selectINSTR('sdsq','s',2)valuefromdual 183. 23.模糊子串的位置--返回2,参数去掉中间%则返回7 184. S:selectpatindex('%d%q%','sdsfasdqe')value 185. O:oracle没发现,但是instr可以通过第四个参数控制出现次数 186. selectINSTR('sdsfasdqe','sd',1,2)valuefromdual返回6 187. 24.求子串 188. S:selectsubstring('abcd',2,2)value 189. O:selectsubstr('abcd',2,2)valuefromdual 190. 25.子串代替返回aijklmnef 191. S:SELECTSTUFF('abcdef',2,3,'ijklmn')value 192. O:SELECTReplace('abcdef','bcd','ijklmn')valuefromdual 193. 26.子串全部替换 194. S:没发现 195. O:selectTranslate('fasdbfasegas','fa','我')valuefromdual 196. 27.长度 197. S:len,datalength 198. O:length 199. 28.大小写转换lower,upper 200. 29.单词首字母大写 201. S:没发现 202. O:selectINITCAP('abcddsafdf')valuefromdual 203. 30.左补空格(LPAD的第一个参数为空格则同space函数) 204. S:selectspace(10)+'abcd'value 205. O:selectLPAD('abcd',14)valuefromdual 206. 31.右补空格(RPAD的第一个参数为空格则同space函数) 207. S:select'abcd'+space(10)value 208. O:selectRPAD('abcd',14)valuefromdual 209. 32.删除空格 210. S:ltrim,rtrim 211. O:ltrim,rtrim,trim 212. 33.重复字符串 213. S:selectREPLICATE('abcd',2)value 214. O:没发现 215. 34.发音相似性比较(这两个单词返回值一样,发音相同) 216. S:SELECTSOUNDEX('Smith'),SOUNDEX('Smythe') 217. O:SELECTSOUNDEX('Smith'),SOUNDEX('Smythe')fromdual 218. SQLServer中用SELECTDIFFERENCE('Smithers','Smythers')比较soundex的差 219. 返回0-4,4为同音,1最高 220. 日期函数 221. 35.系统时间 222. S:selectgetdate()value 223. O:selectsysdatevaluefromdual 224. 36.前后几日 225. 直接与整数相加减 226. 37.求日期 227. S:selectconvert(char(10),getdate(),20)value 228. O:selecttrunc(sysdate)valuefromdual 229. selectto_char(sysdate,'yyyy-mm-dd')valuefromdual 230. 38.求时间 231. S:selectconvert(char(8),getdate(),108)value 232. O:selectto_char(sysdate,'hh24:mm:ss')valuefromdual 233. 39.取日期时间的其他部分 234. S:DATEPART和DATENAME函数(第一个参数决定) 235. O:to_char函数第二个参数决定 236. 参数---------------------------------下表需要补充 237. yearyy,yyyy 238. quarterqq,q(季度) 239. monthmm,m(mO无效) 240. dayofyeardy,y(O表星期) 241. daydd,d(dO无效) 242. weekwk,ww(wkO无效) 243. weekdaydw(O不清楚) 244. Hourhh,hh12,hh24(hh12,hh24S无效) 245. minutemi,n(nO无效) 246. secondss,s(sO无效) 247. millisecondms(O无效) 248. ---------------------------------------------- 249. 40.当月最后一天 250. S:不知道 251. O:selectLAST_DAY(sysdate)valuefromdual 252. 41.本星期的某一天(比如星期日) 253. S:不知道 254. O:SELECTNext_day(sysdate,7)vauleFROMDUAL; 255. 42.字符串转时间 256. S:可以直接转或者selectcast('2004-09-08'asdatetime)value 257. O:SELECTTo_date('2004-01-0522:09:38','yyyy-mm-ddhh24-mi-ss')vauleFROMDUAL; 258. 43.求两日期某一部分的差(比如秒) 259. S:selectdatediff(ss,getdate(),getdate()+12.3)value 260. O:直接用两个日期相减(比如d1-d2=12.3) 261. SELECT(d1-d2)*24*60*60vauleFROMDUAL; 262. 44.根据差值求新的日期(比如分钟) 263. S:selectdateadd(mi,8,getdate())value 264. O:SELECTsysdate+8/60/24vauleFROMDUAL; 265. 45.求不同时区时间 266. S:不知道 267. O:SELECTNew_time(sysdate,'ydt','gmt')vauleFROMDUAL; 268. -----时区参数,北京在东8区应该是Ydt------- 269. ASTADT大西洋标准时间 270. BSTBDT白令海标准时间 271. CSTCDT中部标准时间 272. ESTEDT东部标准时间 273. GMT格林尼治标准时间 274. HSTHDT阿拉斯加?夏威夷标准时间 275. MSTMDT山区标准时间 276. NST纽芬兰标准时间 277. PSTPDT太平洋标准时间 278. YSTYDTYUKON标准时间

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档