oracle内置函数

本文详细介绍了Oracle数据库中的字符函数如补齐、转换、截取等,以及数学函数如四舍五入、取整、幂等,还有日期函数如当前日期、时间处理、日期算术。通过实例演示了如何在实际开发中灵活运用这些函数进行数据处理。
摘要由CSDN通过智能技术生成

字符函数

//向左补齐
select name,lpad(name,6,'0') from kgc;

在这里插入图片描述

//向右补齐
select name,rpad(name,10,'0') from kgc;

在这里插入图片描述

//大小写转换
select lower('JAVA') from dual; //java
select upper('java') from dual; //JAVA
//首字母大写
select initcap('name') from dual; //Name
//字符长度
select name,length(name) from kgc;

在这里插入图片描述

//字符截取
select name,substr(name,0,2) from kgc;

在这里插入图片描述

//是否包含 包含返回位置,不包含返回0
select name,instr(name,'09') from kgc;

在这里插入图片描述

//左右去空格 左边去空格 右边去空格
select trim('    aa    ') from dual;
select ltrim('     aa    ') from dual;
select rtrim('    aa     ') from dual;
//字符连接
select concat('hello',name) from kgc;

在这里插入图片描述

//字符反转
select reverse(name) from kgc;

在这里插入图片描述

//字符串中替换
select replace('abc','a','sss') from dual; //sssbc
//并置运算符
select 'abc'||'def' from dual; //abcdef

数学函数

//四舍五入保留几位小数 默认保留整数
select round(123.456,2) from dual; //123.46
select round(123.556) from dual;   //124
//向上向下取整
select ceil(123.456) from dual;  //124
select floor(123.456) from dual;  //123
//取模
select mod(32,7) from dual;  //4
//判断 大于0返回1 小于0返回-1 0返回0
select sign(-12) from dual;  //-1
select sign(12) from dual;   //1
select sign(0) from dual;    //0
//幂
select power(3,3) from dual;  //27
//开平方
select sqrt(9) from dual;  //3
//截取
select trunc(1234,6789,3) from dual; //1234.678
select trunc(1234.6789,-1) from dual; //1230
select trunc(1234.6789,0) from dual;  //1234
//转字符串 可以设置输出格式
select to_char(123.45,'000.000') from dual; //123.450
select to_char(123.456,'000.00') from dual; //123.46
select to_char(123456321.456,'999,999,999.99') from dual; //123,456,321.46

日期函数

//当前日期和时间
select sysdate from dual;
select systimestamp from dual;
//当前时间是本月的第几周
select to_char(sysdate,'W') from dual; //2
select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;//20210708 2 15:32:23
//当前时间是一个星期中的第几天,星期日是第一天
select to_char(sysdate,'D') from dual;//5
//年
select to_char(sysdate,'yyyy') from dual;//2021
//'Q'--季 'mm'--月 'dd'--一个月中的第几天
//'ddd'--一年中的第几天 'WW'--一年中的第几个星期
//'hh'--小时12 'hh24'--小时24 
//'MI'--分  'SS'--秒
//当前日期是星期几
select to_char(sysdate,'day') from dual;//thursday 
//当天凌晨0点0分0秒的日期
select trunc(sysdate) from dual; //2021-07-08 00:00:00
//得到这天的最后一秒
select trunc(sysdate) + 0.99999 from dual;//2021-07-08 23:59:59
//得到小时的具体数值
select trunc(sysdate)+1/24 from dual;//2021-07-08 01:00:00
select trunc(sysdate)+7/24 from dual;//2021-07-08 07:00:00
//得到明天凌晨0点0分0秒的日期
select trunc(sysdate+1) from dual;
select trunc(sysdate)+1 from dual;//2021-07-09 00:00:00
//得到本月一日的日期
select trunc(sysdate,'mm') from dual;//2021-07-01 00:00:00
//得到下月一日的日期
select trunc(add_months(sysdate,1),'mm') from dual;//2021-08-01 00:00:00
//返回当前月的最后一天
select last_day(sysdate) from dual; //2021-07-31 16:54:34
select last_day(trunc(sysdate)) from dual; //2021-07-31 00:00:00
select trunc(last_day(sysdate)) from dual; 
//2021-07-31 00:00:00
select trunc(add_months(sysdate,1),'mm') - 1 from dual; 
//2021-07-31 00:00:00
//得到一天的第一天
select  trunc(sysdate,'yyyy') from dual;//2021-01-01 00:00:00
//得到一年的每一天
select to_char(trunc(sysdate,'yyyy') + rn -1,'yyyy-mm-dd') date0 from
(select rownum rn from all_objects 
where rownum<366)

在这里插入图片描述

//给现有日期加上2年
select add_months(sysdate,24) fro dual;//2023-07-08 17:08:13
//得到一年的第一天的0点0分0秒
select trunc(sysdate,'y') from dual;//2021-01-01 00:00:00
//得到二月第一天0点0分0秒
select trunc(sysdate,'y')+31 from dual;//2021-02-01 00:00:00
//得到这个月的最后一天的日期
select last_day(trunc(sysdate,'y')+31) from dual;//2021-02-28 00:00:00
//取出日期是一个月的第几天
select to_char(last_day(trunc(sysdate,'y')+31),'dd') from dual;//28
//和29比较
select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual;//平年
//得到日期的季度
select to_char(sysdate,'Q') from dual; //3
//取出月份/3 向上取整
select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;
//加法
select sysdate,add_months(sysdate,12) from dual; --加1年 
select sysdate,add_months(sysdate,1) from dual; --加1月 
select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期 
select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; --加1天 
select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --加1小时 
select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1分钟 
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1秒
//减法
select sysdate,add_months(sysdate,-12) from dual; --减1年 
select sysdate,add_months(sysdate,-1) from dual; --减1月 
select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --减1星期 
select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --减1天 
select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --减1小时 
select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1分钟 
select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1秒
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值