oracle常用函数 下载本文

1、数值型常用函数

函数 返回值 样例 显示

ceil(n) 大于或等于数值n的最小整数 select ceil(10.6) from dual; 11

floor(n) 小于等于数值n的最大整数 select ceil(10.6) from dual; 10

mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2

power(m,n) m的n次方 select power(3,2) from dual; 9

round(n,m) 将n四舍五入,保留小数点后m位 select round(1234.5678,2) from dual; 1234.57

sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1

sqrt(n) n的平方根 select sqrt(25) from dual ; 5

2、常用字符函数

initcap(char) 把每个字符串的第一个字符换成大写 select initicap('mr.ecop') from dual; Mr.Ecop

lower(char) 整个字符串换成小写 select lower('MR.ecop') from dual; mr.ecop

replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott

substr(char,m,n) 取出从m字符开始的n个字符的子串 select substr('ABCDEF',2,2) from dual; CD

length(char) 求字符串的长度 select length('ACD') from dual; 3

|| 并置运算符 select 'ABCD'||'EFGH' from dual; ABCDEFGH

3、日期型函数

sysdate 当前日期和时间 select sysdate from dual;

last_day 本月最后一天 select last_day(sysdate) from dual;

add_months(d,n) 当前日期d后推n个月 select add_months(sysdate,2) from dual;

months_between(d,n) 日期d和n相差月months_between(sysdate,to_date('20020812','YYYYMMDD')) from dual;

select

next_day(d,day) d后第一周指定day的日期 select next_day(sysdate,'Monday') from dual;

day 格式 有 'Monday' 星期一 'Tuesday' 星期二

'wednesday' 星期三 'Thursday' 星期四 'Friday' 星期五

'Saturday' 星期六 'Sunday' 星期日

4、特殊格式的日期型函数

Y或YY或YYY 年的最后一位,两位,三位 select to_char(sysdate,'YYY') from dual;

Q 季度,1-3月为第一季度 select to_char(sysdate,'Q') from dual;

MM 月份数 select to_char(sysdate,'MM') from dual;

RM 月份的罗马表示 select to_char(sysdate,'RM') from dual; IV

month 用9个字符表示的月份名 select to_char(sysdate,'month') from dual;

ww 当年第几周 select to_char(sysdate,'ww') from dual;

w 本月第几周 select to_char(sysdate,'w') from dual;

DDD 当年第几天,一月一日为001 ,二月一日032 select to_char(sysdate,'DDD') from dual;

DD 当月第几天 select to_char(sysdate,'DD') from dual;

D 周内第几天 select to_char(sysdate,'D') from dual; 如 sunday

DY 周内第几天缩写 select to_char(sysdate,'DY') from dual; 如 sun

hh12 12小时制小时数 select to_char(sysdate,'hh12') from dual;

hh24 24小时制小时数 select to_char(sysdate,'hh24') from dual;

Mi 分钟数 select to_char(sysdate,'Mi') from dual;

ss 秒数 select to_char(sysdate,'ss') from dual;

select to_char(sysdate,'YYYY-MM-DD HH:24:mi:ss') from dua;

to_number() 将合法的数字字符串 select to_number('88877') from dual; 88877

to_char() 将数字转换为字符串 select to_char(88877) from dual; '88877'

set serveroupt on;

dbms_output.put_line('hello world')

set heading off 由于正在创建数据文件,不需要表头

set pagesize 0 不需要分页

set linesize 80 设置行的最大尺寸

set echo off 告诉sql plus 在执行语句时,不要回显语句

set feedback off 禁止sql plus 显示有多少满足查询的行被检索到

col sales format 999,999,999

append 添加文本到当前行尾

change/old/new/ 在当前行用新的文本代替旧的文本

change/text 从当前行删除wenb

del 删除当前行

input text 在当前行之后添加一行