Oracle中的函數(shù)和C中的函數(shù)差不多,也是有函數(shù)名,參數(shù)表,和返回值類型組成的,單行函數(shù),是針對(duì)每條記錄都有一個(gè)結(jié)果。單行函數(shù)可以出現(xiàn)在select 后面,也可以出現(xiàn)在where子句中。
需要處理現(xiàn)實(shí)的結(jié)果時(shí),就把函數(shù)寫在select后面,用于條件過(guò)濾時(shí),就把函數(shù)用在where子句中。
1,字符函數(shù)(varchar)
-
字符是大小寫敏感的
轉(zhuǎn)小寫 lower(‘...’)
轉(zhuǎn)大寫 upper(‘...’)
首字母大寫 initcap(‘...’)
dual表,是專門用于函數(shù)測(cè)試和運(yùn)算的,他只有一條記錄
字符串拼接 concat(‘...’,’....’)
求指定子串 substr(‘...’,起始位置,取字符個(gè)數(shù))(起始位置可以為負(fù))
求制定字符串的長(zhǎng)度length(‘……’)
可以使用"-"表示從右向左取,取的時(shí)候可以從左往友取。
例:
select upper(‘test’) from dual;
select first_name from s_emp where upper(first_name)=’GEORGE’;
select substr(first_name,-2,2) sub from s_emp;(取后兩個(gè))
select substr(first_name,2,2) sub from s_emp;(取前兩個(gè))
2,數(shù)值函數(shù)(number)
四舍五入 round(數(shù)據(jù),保留小數(shù)點(diǎn)后幾位)
可以用負(fù)數(shù)表示小數(shù)點(diǎn)前,0,表示小數(shù)點(diǎn)后第一位,也就是保留個(gè)位,-1表示個(gè)位(保留到十 位)。
例:select round(15.36,1) from dual;
結(jié)果:15.4
截取數(shù)字函數(shù) trunc(數(shù)據(jù),保留的位數(shù)(小數(shù)點(diǎn)后位數(shù))) 截取個(gè)位之后補(bǔ)0
例:select trunc(123.456,-1) from dual; 保留倒十位
結(jié)果:120
3,日期函數(shù)
日期格式,
全日期格式 世紀(jì)信息,年月日,時(shí)分秒。
缺省日期格式,日-月-年 dd-mon-rr
日期類型是可以進(jìn)行數(shù)學(xué)運(yùn)算的,+1,是下一天,-1,是上一天,數(shù)據(jù)庫(kù)會(huì)對(duì)數(shù)據(jù)所隱式的轉(zhuǎn)換。
修改當(dāng)前會(huì)話的日期格式,會(huì)按照指定的格式輸出日期
alter session set nls_date_format='yyyy mm dd hh24:mi:ss';
返回當(dāng)前日期 sysdate
例:select sysdate+20 from dual;
日期是格式敏感的
求兩個(gè)日期間相隔了多少個(gè)月 months_between(date1,date2)
加減指定數(shù)量的月份 add_months(date,月數(shù)),月數(shù)可以為負(fù),負(fù)值就是減去相應(yīng)的月數(shù)。
從下周開始的日期加一天 next_day(date,天數(shù))
例:select next_day(sysdate,2) from dual;
返回月末的日期 last_day(date)
截取日期 trunc(date,'年或月或日或時(shí)分秒')
例:select trunc(add_months(sysdate,1),'month') from dual;
4,不同數(shù)據(jù)類型間轉(zhuǎn)換函數(shù)
將日期轉(zhuǎn)成字符 tochar(date,'日期格式')
日期格式要用有效格式,格式大小寫敏感 'yyyy mm dd hh24:mi:ss','year'(全拼的年),'mm'(數(shù)字表示的月) 'month'(全拼的月),'day'(星期的全拼),'ddspth' (日期的全拼) 'yy mm dd',’rr-mm-dd’(會(huì)根據(jù)年份判斷世紀(jì))
例:select to_char(sysdate,'yyyy mm dd hh24:mi:ss') from dual;
將字符轉(zhuǎn)換成數(shù)字 to_number('...'),(可以加第二參數(shù),第二參數(shù)指定定數(shù)字進(jìn)制)
將數(shù)字轉(zhuǎn)字符to_char(number,'fmt') fmt是數(shù)字格式
將字符串轉(zhuǎn)成日期 to_date('...','日期格式')
例:select to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy')
from dual;
5,函數(shù)嵌套
例:select to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy')
from dual;
本文出自:億恩科技【1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|