Oracle單行函數(shù)(字符,數(shù)值,日期,轉(zhuǎn)換)
Oracle單行函數(shù)(字符,數(shù)值,日期,轉(zhuǎn)換)
1、字符函數(shù)接收字符輸入返回字符或者數(shù)值,dual 是偽表
1.1大小寫轉(zhuǎn)換函數(shù)
---1. 把小寫的字符轉(zhuǎn)換成大小的字符
select upper('yes') from dual; 結(jié)果:YES
---2. 把大寫字符變成小寫字符
select lower('YES') from dual; 結(jié)果:yes1.2連接字符串X和concat(X,Y)
select CONCAT('abc','efg') from dual; 結(jié)果:abcefg1.3ASCII碼與字符轉(zhuǎn)換
--ASCII(x)返回字符X 的ASCII碼
select ASCII('a') from dual; 結(jié)果:97
--CHR(x)接收一個(gè)ASCII碼 返回一個(gè)字符
select CHR(65) from dual; 結(jié)果:A1.4返回字符串索引位置:instr(x,str)
索引從1開(kāi)始
select INSTR('abcefg123','123') from dual; 結(jié)果:71.5返回字符串長(zhǎng)度:length()
select LENGTH('abcefg123') from dual; 結(jié)果:91.6字符串替換:replace(X,old,new)
--REPLACE(X,old,new)在X中查找old,并替換成new
select REPLACE('abc882388','88','666') from dual; 結(jié)果:abc666236661.6字符截?。簊ubstr(str,start,lenth)
--REPLACE(X,old,new)在X中查找old,并替換成new--返回X的字串,從start處開(kāi)始,截取length個(gè)字符,缺省length,默認(rèn)到結(jié)尾select?SUBSTR('abcdefg', 4, length('abcdefg')) from dual;結(jié)果:defg
2、數(shù)值函數(shù)
2.1四舍五入函數(shù):round()
---1. 四舍五入函數(shù):ROUND() ---默認(rèn)情況下 ROUND 四舍五入取整,可以自己指定保留的位數(shù)。 ---保留位數(shù)為負(fù)數(shù),即往前保留幾位數(shù) select round(26.16 ) from dual; 結(jié)果:26 select round(26.16, 1) from dual; 結(jié)果:26.1 select round(26.16, -1) from dual; 結(jié)果:30 select round(26.16, -2) from dual; 結(jié)果:0 select round(56.16, -2) from dual; 結(jié)果:100
2.2直接截取函數(shù):trunc()
---直接截取,不在看后面位數(shù)的數(shù)字是否大于5. select trunc(56.56 ) from dual; 結(jié)果:56 select trunc(56.16, 1) from dual; 結(jié)果:56.1 select trunc(56.16, -1) from dual; 結(jié)果:50
2.3求余數(shù)函數(shù):mod()
---求余數(shù) select mod(10, 3) from dual; 結(jié)果:1
2.4取絕對(duì)值:abs()
select abs(-1) as a from dual; 結(jié)果:1
2.5大于x最近的整數(shù)值,或本身:ceil()
select CEIL(3.00001) as a from dual; ?結(jié)果:4
2.6小于x最近的整數(shù)值,或本身:floor()
select FLOOR(2.9999999) as a from dual; ? 結(jié)果:2
2.7X的Y次冪:power(X,Y)
select POWER(3,4) as a from dual; ?結(jié)果:81
3、日期函數(shù)
Oracle 中提供了很多和日期相關(guān)的函數(shù),包括日期的加減,在日期加減時(shí)有一些規(guī)律
日期 – 數(shù)字 = 日期
日期 + 數(shù)字 = 日期
日期 – + 日期 = 數(shù)字 (可直接加減,單位是天)
----查詢出emp表中所有員工入職距離現(xiàn)在幾天。 select sysdate-e.hiredate from emp e; 結(jié)果:以天為單位的小數(shù) ----算出明天此刻 select sysdate+1 from dual; 結(jié)果:2020/12/4 16:35:36 ----查詢出emp表中所有員工入職距離現(xiàn)在幾月。 select months_between(sysdate,e.hiredate) from emp e; 結(jié)果:以月為單位的小數(shù) ----查詢出emp表中所有員工入職距離現(xiàn)在幾年。 select months_between(sysdate,e.hiredate)/12 from emp e; 結(jié)果:以年為單位的小數(shù) ----查詢出emp表中所有員工入職距離現(xiàn)在幾周。 select round((sysdate-e.hiredate)/7) from emp e; 結(jié)果:以周為單位的小數(shù)
4、轉(zhuǎn)換函數(shù)
4.1日期轉(zhuǎn)字符串:to_char()
---日期轉(zhuǎn)字符串 select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual; 結(jié)果:2020-12-04 05:18:03 12小時(shí)有0 select to_char(sysdate, 'fm yyyy-mm-dd hh:mi:ss') from dual; 結(jié)果:2020-12-4 5:18:32 12小時(shí)無(wú)0 select to_char(sysdate, 'fm yyyy-mm-dd hh24:mi:ss') from dual; 結(jié)果: 2020-12-4 17:18:47 24小時(shí)無(wú)0
可以使用 TO_CHAR 函數(shù)來(lái)拆分年月日
select empno,ename
to_char(hiredate,'yyyy') 年,
to_char(hiredate,'mm') 月,
to_char(hiredate,'dd') 日
from emp;
select empno,ename
to_char(hiredate,'yyyy-mm-dd') 日
from emp;
to_char(number,‘L999,999.99’)
L代表貨幣符號(hào),代表千位數(shù)分隔符.代表小數(shù)位分隔符
select to_char(123456.99,'L999,999.99') from dual; 結(jié)果: $123,456.99
4.2字符串轉(zhuǎn)日期:to_date()---字符串轉(zhuǎn)日期
select to_date('2020-12-4 17:18:47', 'fm yyyy-mm-dd hh24:mi:ss') from dual;5、通用函數(shù):nvl()
---算出emp表中所有員工的年薪(獎(jiǎng)金+12個(gè)月 月薪) select e.sal*12 from emp e; 結(jié)果:12個(gè)月 月薪 ---獎(jiǎng)金里面有null值,如果null值和任意數(shù)字做算術(shù)運(yùn)算,結(jié)果都是null。 select e.sal*12+e.comm from emp e; 結(jié)果:有員工結(jié)果為空 ---如果 e.comm 為空,則正常相加;e.comm 為 null,則用 0取代 e.comm select e.sal*12+nvl(e.comm, 0) from emp e; 結(jié)果:正常查詢員工年薪
到此這篇關(guān)于Oracle單行函數(shù)(字符,數(shù)值,日期,轉(zhuǎn)換)的文章就介紹到這了,更多相關(guān)Oracle單行函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle數(shù)據(jù)庫(kù)查看與修改內(nèi)存配置的方法
在使用Oracle時(shí)我們需要關(guān)注數(shù)據(jù)庫(kù)的內(nèi)存使用情況,以確保其正確高效地運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)查看與修改內(nèi)存配置的相關(guān)資料,需要的朋友可以參考下2023-11-11
從Oracle數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)自動(dòng)生成INSERT語(yǔ)句的方法
今天小編就為大家分享一篇關(guān)于從Oracle數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)自動(dòng)生成INSERT語(yǔ)句的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
Oracle單行函數(shù)(字符,數(shù)值,日期,轉(zhuǎn)換)
這篇文章主要介紹了Oracle單行函數(shù)(字符,數(shù)值,日期,轉(zhuǎn)換),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
oracle設(shè)置密碼復(fù)雜度及設(shè)置超時(shí)退出的功能
我們都知道密碼策略加固的參數(shù)一般包括密碼長(zhǎng)度、復(fù)雜度檢測(cè)、最大最小使用時(shí)間、過(guò)期警報(bào)時(shí)間、最大登錄失敗次數(shù)以及鎖定時(shí)間等設(shè)置,下面這篇文章主要給大家介紹了關(guān)于oracle設(shè)置密碼復(fù)雜度及設(shè)置超時(shí)退出功能的相關(guān)資料,需要的朋友可以參考下2022-06-06
ORACLE 超長(zhǎng)字符串問(wèn)題的解決辦法
這篇文章主要介紹了ORACLE 超長(zhǎng)字符串問(wèn)題的解決辦法,需要的朋友可以參考下2015-10-10
oracle數(shù)據(jù)與文本導(dǎo)入導(dǎo)出源碼示例
這篇文章主要介紹了oracle數(shù)據(jù)與文本導(dǎo)入導(dǎo)出源碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10
Oracle中查詢表結(jié)構(gòu)的6種方法總結(jié)
工作中查看oracle表結(jié)構(gòu)經(jīng)常會(huì)遇到,下面這篇文章主要給大家介紹了關(guān)于Oracle中查詢表結(jié)構(gòu)的6種方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
oracle SCN跟TIMESTAMP之間轉(zhuǎn)換
本文將詳細(xì)介紹oracle SCN跟TIMESTAMP之間轉(zhuǎn)換,需要的朋友可以參考下2012-11-11

