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