单行函数:每一行都有自己的结果;
多行函数:最终结果只有一行;
字符串函数
大写 upper(col);
小写 lower(col);
首字母大写 initcap(col);非字符数字则认为开始新单词
连接函数 concat 只能连接两个表达式,连接符 ||
截取字符 substr('asdsds',+-1,2),正反首位开始截取两个字符
长度 length();字符
lengthc(); unicode字符长
lengthb();字节长度 ,实际的存储大小
查找字符位置 instr();
开头字符 instr('',1) = 'A'
默认为0,输出 首次 出现位置
填充 l/rpad
rpad('as',10,' '),左对齐,不足10长,添加' '
截取 trim(both|leading|trailing 'char' from expr)
默认截取前后的多个相同字符,leading 前,trailing 后
ltrim,rtrim >=10g
l/rtrim(expr,'char') <=> trim (leading/trailing)
替换 replace(expr,old,new),全部替换
ascii码转换 chr(10) 换行
数字函数
5 6 7 .8 9 1
-3-2-1.1 2 3
取整
5入 round(456.789,2) 456.79
4舍 trunc(456.789,2) 456.78
trunc(456.789,-2) 460
默认取小数点trunc(456.789) 456
取余 mod(2001,5) 1
绝对值 abs(-123) 123
日期函数
rr,当前年与指定年后两位不是同时处于0-49或50-99,日期有误差,前大后小世纪加1
yy 返回本世纪
to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
to_date('1999-2-2 12:22:22','yyyy-mm-dd hh24:mi:ss')
计算的单位是 天
显示 : alter session set nls_date_format = 'yyyy-mm-dd';
round时,大于6加一年
两个日期月差 months_between();
加月 add_months(); 操作单位 : 月
指定日期下一天next_day();
下周一 next_day(sysdate,'mon')
本月最后一天 last_day();