oracle函数的一些简单例子

来源:互联网 发布:qq三国陆逊打技能数据 编辑:程序博客网 时间:2024/05/22 09:49
--数值型函数
select ceil(12.3) from dual;   --大于或等于n的最小整数
select floor(12.3) from dual;  --小于等于n的最大整数
select mod(15,2) from dual;    --取余
select power(2,4) from dual;   --2的4次方
select round (3.1415926,2) from dual;  --保留几位有效数字
select sign(-12) from dual;    --判断正负,正返回1,负返回-1
select sqrt(16) from dual;     --开平方
--字符型函数
select initcap('liu guotai') from dual;     --首字母大写
select lower('ADFHBSDJFKsdkjf') from dual;  --全部小写
select upper('jdsfbsjfbbi') from dual;      --全部大写
select replace('liuguotai','l','y') from dual;  --代替字符函数,将liuguotai中l变成y
select substr('123456',4,3) from dual;      --截取字符串
select length('1234567')from dual;          --长度
select '123'||'456' from dual;              --将字符串连接(这个不属于函数)
select concat('123','456') from dual;       --正儿八经的字符串连接函数
select lpad('12345',6,'0') from dual;       --固定字符串长度为6,不足在前面补第三个参数的值
--如果固定长度小于字符串长度,则返回从左数长度为固定长度的字符
select rpad('12345',6,'0') from dual;       --与上面相反
--如果固定长度小于字符串长度,则返回从左数长度为固定长度的字符
select ltrim('    123') from dual;        --去左边空格
select rtrim('123           ')from dual;  --去右边空格
select soundex('cat') from dual;      --从str返回一个soundex字符串。两个字符串应该有几乎是相同的同音字符串(并不是很清楚是什么意思)
select translate('123456','123','abc')  from dual;  --将参数1中与参数2相同部分转换成参数3
SELECT ascii('abcd') from dual;    --返回参数中第一个字符的ascii码
SELECT INSTR('aptech is aptechap','ap',1,2) FROM DUAL;  --参数1要查找的字符串,
--参数2要查找哪个字符在参数1中的位置,参数3查找开始位置,参数4第几次出现,返回其位置
--日期函数
select sysdate from dual;       --获取当前时间
select last_day(sysdate) from dual;--本月最后一天
select add_months(sysdate,2) from dual;  --从本月向后推两个月
select months_between(sysdate,to_date('2017/09/07','yyyy/mm/dd')) from dual; --两个日期之间差几个月(可能会出现小数)
select next_day( sysdate, '星期一') from dual;  ---当前日期后第一周指定周几的日期(在这里星期几需要写汉字)
select to_date('2016/09/03','yyyy/MM/dd hh24:mi:ss') from dual;    --to_date的简单用法

--关于日期转换函数(to_char)
select to_char(sysdate,'dd') from dual;    --显示日期的天  dd
select to_char(sysdate,'MM') from dual;    --显示日期的月  MM(尽量用MM不要写mm)
select to_char(sysdate,'yyyy') from dual;  --显示日期的年份
select to_char(sysdate,'yyy') from dual;   --年份的后三位
select to_char(sysdate,'yy') from dual;    --显示年份的后来两位
select to_char(sysdate,'y') from dual;     --显示年份的后一位
select to_char(sysdate,'Q') from dual;     --显示该日期的季度(每三个月为一个季度)
select to_char(sysdate,'RM')from dual;     --日期的罗马表示
select to_char(sysdate,'month') from dual; --与之前的MM相比,多了一个月字
select to_char(to_date('2016/09/03','yyyy/MM/dd'),'WW') from dual;    --显示现在是这一年的第几周
select to_char(sysdate,'W') from dual;     --显示现在是这个月的第几周
select to_char(sysdate,'DDD') from dual;   --当年的第几天
select to_char(sysdate,'DD') from dual;    --当月第几天
select to_char(sysdate,'D') from dual;     --当周第几天
select to_char(to_date('2016/09/04','yyyy/MM/dd'),'DY') from dual;    --当前天是第几天
select to_char(sysdate,'hh12:mi:ss') from dual;    --转换成12小时制
select to_char(sysdate,'hh24:mi:ss') from dual;    --24小时制显示当前时间
--select sysdate from dual;           直接获取当前时间(24小时制)
select to_char(sysdate,'yyyy[MM@dd') from dual;    --这句话是说明只要yyyy等写对了,其它格式自己随意
--运行结果2017[10@06

--关于不知道怎么分类的
--数字与字符串之间
select to_char(123456) from dual;     --数字转换成字符串(可以进行字符串的一些操作)
select ltrim(to_number('0123456')) from dual; --字符串转成数字(前提是可以转换)
begin
dbms_output.put_line('12334');                  ---输出函数,执行完之后在顶上点输出可以看到结果
end;