oracle 数值 日期函数

数值函数

常用的处理数值的函数有如下:


No.


函数名


含义


1


数字 round(列 | 数字[.小数位])


返回数据四舍五入后的值


2


数字 trunc(列 | 数字[.小数位])


数据截取,即不会进位


3


数字 mod(列 | 数字, 列 | 数字)


求余数

日期函数

日期有三个操作公式:

日期 + 数字 = 日期(n天之后的日期)

日期 – 数字 = 日期(n天之前的日期)

日期 – 日期 = 数字(日期之间的天数)

示例1:显示三周前(21天)的日期。


select sysdate-21 from dual;

示例2:显示两周后(17天)的日期。


select sysdate+14 from dual;

示例3:查询每位雇员已经被雇佣的天数。


select sysdate-hiredate from emp;

select trunc(sysdate-hiredate) from emp;

示例4:查询每位雇员已经被雇佣的月份和年份。


select trunc(sysdate-hiredate)/30,trunc(sysdate-hiredate)/365 from emp;

使用天使实现年或月的计算一定是不准确的。Oracle提供有以下日期函数:


No.


函数名


含义


1


日期 add_months(列 | 日期,月数)


返回增加若干月之后的日期


2


数字 months_between(列 | 日期, 列 | 日期)


返回两个日期之间的月数


3


日期 last_day(列 | 日期)


返回日期所在月的最后一天


4


日期 next_day(列 | 日期,星期X)


返回日期在下周,星期X的日期

题目1:实现4个月之后是哪一天。


select add_months(sysdate,4) from dual;

题目2:查询emp所有雇员到现在为止的雇佣月数。


select empno,ename,trunc(months_between(sysdate,hiredate)) from emp;

题目3:查询当前所在月的最后一天。


select last_day(sysdate) from dual;

题目4:查询所有雇员到现在为止的雇佣年份。

方式1:(日期 - 日期 = 天数)/365    --(无法去除闰年)

方式2:months_between(sysdate,hiredate)/12


select empno,ename,trunc(trunc(months_between(sysdate,hiredate))/12) from emp;

时间: 2024-10-14 08:16:25

oracle 数值 日期函数的相关文章

Oracle时间日期函数

ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007                    Month

Oracle常用日期函数

常用的时间格式掩码如下:掩码元素       含义YYYY           四位数年份 (如:2005)     yearYY             二位数年份(如  05) Q                季度(1-4) MM             月份(01-12)      monthWW           年的星期数(1-53),其中第一星期为年的第一天至第七天 W             月的星期数(1-5),其中第一星期为月的第一天至第七天 DDD          年的

Oracle数值处理函数 (绝对值、取整...)

1.绝对值:abs()    select abs(-2) value from dual; 2.取整函数(大):ceil()    select ceil(-2.001) value from dual;(-2) 3.取整函数(小):floor()    select floor(-2.001) value from dual;(-3) 4.取整函数(截取):trunc()    select trunc(-2.001) value from dual; (-2) 5.四舍五入:round()

Oracle增强型日期函数

--修改数据库时区为东八区 ALTER DATABASE SET TIME_ZONE='+08:00'; /* 在修改过程中可能会出现错误提示:ORA-30079: 当数据库有TIMESTAMP WITH LOCAL TIMEZONE列时不能变更数据库时区 这是因为当前数据库中已有的表中存在列,列的类型定义为了TIMESTAMP WITH LOCAL TIME ZONE 所以数据库不允许修改数据库时区 接下来需要通过语句找到是哪些表的列引起的这个问题,查询语句如下: **/ --检查是否有影响修

oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。

一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可. --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; sel

oracle:数值型函数,日期函数,转换函数,组函数,分组,排序,两表查询连接

--数值型函数 --四舍五入round(x,y)对x保留y为小数 --四舍五入数值 select round(23.225) from dual; --输出结果:24 --四舍五入(小数点后保留1位小数)数值 select round(23.652,1)from dual; --输出结果:23.7 --四舍五入(四舍五入到小数点前1位小数)数值 select round(25.2466,-1)from dual; --输出结果:30 -- 返回x按精度y截取后的值 --未四舍五入的值 selec

Oracle数据库数值、日期函数的学习

一.数值函数的学习 1)number(p,s).number(p).number(*,s),p的值为1-38之间. 2)数值类型的兼容性 --:numeric(p,s) 相当于number(p,s) --:decimal(p,s)或dec(p,s) 相当于number(p,s) --:integer或int(不能指定位数)相当于number(38) --:smallint相当于number(38) --:float相当于number --:double precision相当于number --

Oracle ->> 日期函数

Oracle下的日期时间函数和SQL SERVER真他妈不同.这个真需要时间适应. ---------------------------------------------日期/时间函数----------------------------------------------- --1: SYSDATE 用来得到系统的当前日期 SELECT SYSDATE FROM DUAL; --2: ADD_MONTHS 增加或减去月份 SELECT TO_CHAR(ADD_MONTHS(TO_DATE

ORACLE PL/SQL 字符串函数、数学函数、日期函数

ORACLE PL/SQL 字符串函数.数学函数.日期函数 --[字符串函数] --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1; --字符串从前面取三个(0开始) select Name,substr(Name,0,3) from t1; --字符串从后面取三个 select Name,substr(Name,-3