--类型转换--TO_CHAR(date, format): 根据format重新格式日期date的格式(转换日期格式到字符串)--TO_DATE(char, format): 按照指定的format格式将字符串转换为oracle的日期型--TO_NUMBER(char): 将给出的数字子串转换为数字SELECT to_char(SYSDATE, 'dd-mm-yyyy') FROM dual;SELECT to_date('22-09-2012', 'dd-mm-yyyy') FROM dual;SELECT to_number('22092012') FROM dual;;--日期处理--add_months(date,count) 返回日期date上加上count个月后的结果--greatest(date1,date2,..) 从日期列表中选出最晚的日期--least(date1,date2,..) 从日期列表中选出最早的日期--last_day(date) 返回日期date所在的月的最后一天--months_between(date2,date1) 给出date2-date1的月数,以小数计算--next_day(date, day) 给出日期date之后下一天的日期,这里的day为星期 字符集有关 1 或者 星期一 与字符集有关--trunc(date,format) 按照给出的要求格式将日期截断,未指定format时,将日期截为12PM 精准到 对应formate 其他用 1 填充 --小数截取位数 --SYSDATE 用来得到系统的当前日期SELECT SYSDATE FROM dual;SELECT add_months(to_date('22-09-2012', 'dd-mm-yyyy'),1) FROM dual;SELECT greatest(to_date('22-09-2012', 'dd-mm-yyyy'),to_date('23-09-2012', 'dd-mm-yyyy')) FROM dual;SELECT least(to_date('22-09-2012', 'dd-mm-yyyy'),to_date('23-09-2012', 'dd-mm-yyyy')) FROM dual;SELECT last_day(to_date('22-10-2012', 'dd-mm-yyyy')) FROM dual;SELECT months_between(to_date('24-02-2012', 'dd-mm-yyyy'),to_date('25-01-2012', 'dd-mm-yyyy')) FROM dual;SELECT next_day(to_date('22-10-2012', 'dd-mm-yyyy'),1) FROM dual;SELECT trunc(to_date('22-10-2012', 'dd-mm-yyyy'),'mm') FROM dual;SELECT EXTRACT(YEAR FROM (to_date('22-10-2012', 'dd-mm-yyyy'))) FROM dual;SELECT EXTRACT(YEAR FROM DATE'2012-10-22') FROM dual;SELECT trunc(23.1293,2) FROM dual;SELECT ROUND(to_date('01-07-2012', 'dd-mm-yyyy'),'yy') FROM dual;;--字符串处理--initcap(string) 返回字符串并将字符串的每一个单词的字母大写--lower(string) 将字符串string所有字符变为小写--upper(string) 将字符串string所有字符变为大写--length(string) 返回字符串string的长度--ltrim(string,set) 返回删除从左边算起的出现在字符串set中的字符string--rtrim(string,set) 返回删除从右边算起的出现在字符串set中的字符string--replace(string, searchstring, repstring) 返回用repstring替换所有在string中出现的searchstring后的字符串string--instr (string1, string2) 以整数形式返回string1在string2中第一次出现的位置 从1开始--substr (string, m, n) 返回在string中从位置m开始,有n个字符长的string的一部分--concat(string1, string2) 用于将string1和string2连接起来,作用和||相似,但只能连接2个字符串,||可连接多个;SELECT initcap('i am jeff') FROM dual;SELECT lower('I AM JEFF') FROM dual;SELECT upper('i am jeff') FROM dual;SELECT length('i am jeff') FROM dual;SELECT ltrim('i am jeff','i') FROM dual;SELECT rtrim('i am jeff','i') FROM dual;SELECT trim(' i am jeff ') FROM dual;select trim (both from ' DWEYE ')FROM dual;select trim (TRAILING from ' DWEYE ')FROM dual;select trim (LEADING from ' DWEYE ')FROM dual;SELECT replace('i am jeff','f','a') FROM dual;SELECT instr('i am je jeff','jeff') FROM dual; SELECT substr('iamjejeff','2','3') FROM dual; SELECT concat('i am','jeff') FROM dual; --数字处理--ceil(n) 用于返回大于或等于给出数字n的最小整数--floor(n) 用于返回小于或等于给出数字n的最大整数--round(m,n) 用于返回四舍五入到指定n位小数m的值--trunc(m,n) 用于返回裁剪到位置n位小数的m的值--mod(m,n) 用于返回m和n两数的余数值(求模)--power(m,n) 用于返回m的n次方--sqrt(n) 用于返回数字n的平方根--sign(n) 根据数字n的值决定返回值,n大于0返回1;n小于0返回-1;n等于0返回0;SELECT ceil(2.01) FROM dual; SELECT floor(2.01) FROM dual; SELECT round(2.11,1) FROM dual; SELECT trunc(2.11,1) FROM dual; SELECT mod(2.01,2) FROM dual; SELECT power(3,2) FROM dual; SELECT sqrt(2) FROM dual; SELECT sign(-1) FROM dual; --NVL--NVL(c1,c2) IF c1 is null THEN c2 ELSE c1 END--NVL2(c1,c2,c3) 如果c1非空则返回c2,如果c1为空则返回c3--NULLIF(c1,c2) 于CASE WHEN c1 = c2 THEN NULL ELSE c1 END;SELECT NVL(NULL,'2') FROM dual; SELECT NVL2('a','1','2') FROM dual; SELECT NULLIF('2','2') FROM dual; --decode--DECODE(value, search_value, result, default_value)--聚合函数--AVG MIN MAX SUM COUNT