oracle中查询函数需要用到dual表
数值函数
四舍五入:n表示要进行四舍五入的值,m表示保留小数点后几位或前几位ROUND(n,[m]).省略m,就是0;m>0:小数点后m位;m<0:小数点前m位。
取整函数:
ceil(n):上限,取的最大值;floor(n):下限,取的最小值。
select ceil(23.45),floor(23.45) from dual;CEIL(23.45) FLOOR(23.45)
----------- ------------
24 23
常用计算:取绝对值:ABS(n)取余数:MOD(m,n):如果m和n中有一个值为null,则结果返回为null.幂数:power(m,n),表示返回m的n次幂。平方根:sqrt(n),求n的平方根。
三角函数:SIN(n),ASIN(n),n代表弧度。
字符函数
大小写转换函数
获取子字符串函数UPPER(char):转为大写
LOWER(char):转为小写
INITCAP(char):将首字母转为大写
SUBSTR(char,[m[,n]]):char代表要截取的字符串,m代表截取的起始位置,n代表截取的位数。
n可以省略,省略后代表从m的位置截取到字符串末尾。m为0代表从首字母开始截取,m为负数,代表从字符串尾部开始倒数计算截取。
获取字符串长度函数
LENGTH(char)
字符串连接函数
CONCAT(char1,char2),与||操作符作用一致
select concat('ab','cd') from dual;
去除字串函数
TRIM(c2 from c1):从字符串c1中去除字符c2;
LTRIM(c1[,c2]):从c1的头部去除c2;RTRIM 右边,尾部去掉
TRIM(c1):只有一个参数,代表去除空格
替换函数
REPLACE(char,s_string[,r_string]):省略r_string用空格替换。
日期函数
系统时间SYSDATE默认格式:DD-MON-RR
日期操作ADD_MONTHS(date,i)select add_months(sysdate,3),add_months(sysdate,-3) from dual;
NEXT_DAY(date,char),如果char的值是‘星期一’,则返回date指定日期的下周一是哪一天。
LAST_DAY(date):本月的最后一天是哪一天.
MONTHS_BETWEEN(date1,date2)表示两个日期之间相隔的月份;
EXTRACT(date from datetime)select extract(day from sysdate) from dual;
select extract(hour from timestamp '2015-10-1 17:25:13') from dual;
转换函数
修改日期格式:
然后更新props$这个表里的字段即可
update props$ set value = 'YYYY-MM-DD' where parameter = 'NLS_DATE_FORMAT';
然后重新启动数据库
更改会话日期格式
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
这种修改方法,只对当前会话有效。注意,是对当前会话,而不是当前的sql*plus窗口。即如果你这样修改之后,又使用connect命令以其他用户连接到数据库或者是连接到其他的数据库,则这个日期格式就失效了,又恢复到缺省的日期格式。