1. 程式人生 > >oracle 數值 日期函數

oracle 數值 日期函數

nbsp rom 含義 數字 求余 星期 小數位 tro 之前

數值函數

常用的處理數值的函數有如下

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 --(無法去除閏年)

方式2months_between(sysdate,hiredate)/12

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

oracle 數值 日期函數