Oracle中的函式(日期 數學 系統)

2021-09-02 13:48:21 字數 2819 閱讀 3583

日期函式介紹

日期函式用於處理date型別的資料。

預設情況下日期格式是dd-mon-yy    即12-7月-86

1)sysdate:該函式返回系統時間

2)add_months(d,n)在d的日期上加上n個月

例如:add_months(hiredate,8)就是指在入職8個月

3)last_day(d):返回指定日期d所在月份的最後一天

?查詢已經入職8個月多的員工

sql> select * from emp where sysdate > add_months(hiredate,8);

?查詢滿10年服務年限的員工的姓名和受僱日期

sql> select ename,hiredate from emp where sysdate >= add_months(hiredate,12*10);

?對於每個員工,顯示其加入公司的天數

sql> select ename 姓名,trunc(sysdate-hiredate) 入職天數 from emp;

?找出各月倒數第三天受僱的所有員工

sql> select hiredate,ename from emp where last_day(hiredate)-2=hiredate;

在oracle測試的時候可以使用dual表

數學函式介紹

數學函式的輸入引數和返回值的資料型別都是數字型別的。

數學函式包括cos,cosh,exp,ln,log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round

常用的:

1.round(n,[m])

n代表的是要四捨五入的數值,m是指四捨五入幾位小數點,如果沒有,則四捨五入到整數

sql> select round(sal,1) from kkkk where ename='kkkk';

2.trunc(n,[m])

n代表的是要擷取的,m的是擷取小數點幾位的,不採用四捨五入方式,要是沒有m則不要小數,如果m是負數,則從整數字開始擷取

sql> select trunc(comm,1),comm from kkkk where ename='kkkk1';

3.mod(m,n):取模

4.floor(n):返回小於或是等於n的最大整數

5.ceil(n):返回大於或是等於n的最大整數

對數字的處理,在財務系統或者銀行系統中用得最多,不同的處理方法,對財務報表有不同的結果。

具體函式的介紹

1.round(n,[m]):該函式用於四捨五入,如果省掉m,則四捨五入到則四捨五入到整數;如果m是正數,則四捨五入到小數點的m位後。如果m是負數,則四捨五入到小數點的m位前。

2.trunc(n,[m]):該函式用於擷取數字,如果省掉m,就截去小數部分,如果m是正數就擷取到小數點的m位後,如果m是負數,則擷取到小數點的前m位

3.mod(m,n):取模

sql> select mod(10,3) from dual;

mod(10,3)

----------

14.floor(n):返回小於或是等於n的最大整數

sql> select floor(comm),comm from kkkk where ename='kkkk2';

floor(comm)      comm

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

65     65.34

5.ceil(n):返回大於或是等於n的最大整數

sql> select ceil(comm),comm from kkkk where ename='kkkk2';

ceil(comm)      comm

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

66     65.34

案例資料:2345.56   45.94

?顯示在乙個月為30天的情況所有員工的日薪金,忽略餘數。

sql> select trunc(sal/30),ename from emp;

或sql> select floor(sal/30),ename from emp;

其它的數學函式

abs(n):返回數字n的絕對值

acos(n):返回數字的反余弦值

asin(n):返回數字的反正弦值

atan(n):返回數字的反正切值

cos(n):求n的余弦值

exp(n):返回e的n次冪

log(m,n):返回對數值

power(m,n):返回m的n次冪

系統函式介紹

這個都是顯示的是每個資料的系統屬性

即有多少個資料就會顯示多少行的結果

sys_context

1) terminal:當前會話客戶所對應的終端的識別符號

2)language:語言

3)db_name:當前資料庫的名稱

4)nls_date_format:當前會話客戶所對應的日期格式

sql>alter session set nls_date_format = 'yyyy-mm-dd';改日期的預設格式

5)session_user:當前會話客戶所對應的資料庫使用者名稱

6)current_schema:當前會話客戶所對應的預設方案名

7)host:返回資料庫所在主機的名稱

通過該函式,可以查詢一些重要資訊,比如你在使用哪個資料庫?

select sys_context('userenv','db_name') from dual;

其中sys_context()中的第乙個元素'userenv'是固定的

userev:user environment

方案的名字和使用者的名字是一致的。

機器學習中的數學系列 資訊理論

1,資訊 i x log p x 事件x不確定性的度量,不確定性越大,資訊量越大。從資訊編碼角度,這是編碼這一資訊所需要的最小位元數 log以2為底,以e為底的叫做奈特 2,熵 h x sum x 隨機變數x不確定的度量,資訊的期望,不確定性越大,熵越大。從資訊編碼角度講,熵是對資訊進行編碼所需要的...

oracle中單行函式日期時間函式總結

表中存在偽列 sysdate,systimestamp 偽列存在但是不顯示 select sysdate from dual select systimestamp from dual 日期計算公式 日期 天數 日期 日期 天數 日期 日期 日期 天數 函式編號 函式描述 函式使用例項 1返回 日期...

oracle中的case函式學習

首先介紹一下case的簡單語法 寫法一 case 欄位名 when value1 then replace1 when value2 then replace2 else other end 寫法二 case when 欄位名 value1 then replace1 when 欄位名 value2...