千家信息网

Oracle函数-单行函数-数字、日期、日期处理函数

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,函数的分类单行函数:一个input对应一个output,input和output存在一一对应的关系 如lower组函数:多个input,但是只对应一个output。如 sum()===========
千家信息网最后更新 2026年11月03日Oracle函数-单行函数-数字、日期、日期处理函数


函数的分类

单行函数:一个input对应一个output,input和output存在一一对应的关系 如lower

组函数:多个input,但是只对应一个output。如 sum()


==========================================================


单行函数

特点:

每行返回一个结果,输入输出存在一一对应的关系

能嵌套使用 ,一个函数的输出能做另外一个函数的输入 如:select lowner(upper('aa')) from dual;

传入的变量可以是列的值,也可以是表达式。 如 select lower(ename) from emp;


==========================================================


1、数字函数

对数字进行操作,是加减乘除的补充

SQL>select round(45.926,2) from dual; --四舍五入,第二位保留几个小数点

SQL>select trunc(45.926,2) from dual; --直接截取,不进行四舍五入

SQL>select mod(10,3) from dual; --求余数



2、日期函数

oracle数据库存储日期的默认显示格式是DD-MON-YY

修改日期显示格式:

alter session set nls_date_format='<需要的格式>';



3、SYSDATA:查看系统时间

SQL>select sysdate from dual; --查看系统当前时间

SQL>select sysdate,sysdate-7 from dual; --减1星期

SQL>select sysdate,sysdate-1 from dual; --减1天

SQL>select sysdate,sysdate-1/24 from dual; --减1小时

SQL>select sysdate,sysdate-1/24/60 from dual; --减1分钟

SQL>select sysdate,sysdate-1/24/60/60 from dual; --减1秒



4、日期处理函数

现有日期加上或者减去一个值会得到一个日期。如 select sysdate,sysdate-7 from dual;

两个日期相减可以得到两个日期的天数(时间间隔) 如 select (sysdate-hiredate)/7 weeks from emp;

①months_between 两个日期之间有多少个月

SQL>select months_between(sysdate,sysdate-1000) from dual;


②add_months 指定日期下加多少个月

SQL>select add_months(sysdate,2) from dual;


③last_date 指定日期的最后一天

SQL>select last_day(sysdate) from dual;



5、日期的四舍五入:

对年份,按照1-6月,7-12月进行四舍五入

对月份,按照1-15,15-31日进行四舍五入

对日,按照星期天到星期三,注意:每周的开始是星期天。


SQL> select sysdate from dual;


SYSDATE

------------

16-MAY-16 当前是16年5月16日


==========================================================


SQL> select round(sysdate,'year') from dual;

----对年进行四舍五入,也就是精确到年份,现在是5月,没有过6月,所以结果为16-1-1


ROUND(SYSDATE)

------------

01-JAN-16


==========================================================


SQL> select round(sysdate+60,'year') from dual; -5月16日加60天,已经到了7月,所以结果为17-1-1

ROUND(SYSDATE)

------------

01-JAN-17


==========================================================


SQL> select round(sysdate,'month') from dual;

-----对月份进行四舍五入,也就是精确到月份。现在是16号,过了15,号 所有结果为下一个月1日

ROUND(SYSDATE)

------------

01-JUN-16


==========================================================


SQL> select round(sysdate+22,'month') from dual;

----现在是5月16号,22天后是7月7日, 7号没有过15,所以结果为16-07-01

ROUND(SYSDATE)

------------

01-JUL-16


==========================================================


SQL> !date

Mon May 16 22:47:25 CST 2016


2016年5月16日,周一, 本周的起始时间是 5月15日(每周日为一个星期的开始,周六为一个星期的结束)


==========================================================


SQL>select round(sysdate,'day') from dual;

----对日进行四舍五入,也就是看星期几 5月16日是星期一,没过星期三,所以不"进位",显示本周第一天


ROUND(SYSDATE)

------------

15-MAY-16


==========================================================


SQL>select round(sysdate+3,'day') from dual;

----16日是星期一,加三天就是星期四,超过了星期三,所以进位,显示下一周的星期一


==========================================================


SQL>select round(sysdate-3,'day') from dual;

----星期一减三天是上个星期的星期五,超过了星期三,所以进位,显示当前周的下一个星期一,也就是15号



星期 日期 函数 四舍五入 四舍 结果 也就是 时间 两个 月份 数字 精确 一一对应 年份 格式 系统 输入 输出 处理 加减乘除 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网黑科技 互联网科技工作委员会主任 深圳恒合互联网络科技有限公司 互联网属科技 青岛互联网科技公司 艾特科技互联网 互联网科技论文 碳银互联网科技有限公司 上游互联网科技 栖莱科技互联网股份有限公司 成都互联网科技公司工作好不好 呼和浩特新华互联网科技学院 互联网科技大奖都有哪些公司 工业互联网山东科技大学 互联网科技数字货币 广州有谷有贝互联网科技有限公司 南京一网一红互联网科技有限公司 上海乐五互联网科技有限公司 互联网科技的前景 深圳互联网科技园地址 广州为想互联网科技有限公司 山东特亿宝互联网科技有限公司 金诺互联网科技 金融科技与互联网金融 掌上梦互联网科技 成都互联网科技公司100强 阿里互联网科技公司 长沙茂晟互联网科技有限公司 互联网高科技行业有哪些企业 颐高云石互联网科技
0