一般的to_char是這樣用的to_char(sysdate,'yyyy-mm-dd hh:mi:ss am') ,也有幾個突出點的用法:
to_char(sysdate, 'dd') 檢視今天是幾號to_char(sysdate, 'ww') 檢視這是這個月第幾個星期
to_char(sysdate, 'mm') 檢視這是一年中第幾個月
to_char(sysdate, 'yyyy') 檢視年份
last_day(to_date('2007-02-01','yyyy-mm-dd'))檢視乙個月的最後一 天,add_months(sysdate,10)檢視若干個月後的今天,next_day(sysdate,'星期五')給個日期檢視後面的最近的星期 幾的日期,不過這個星期五要是換成英文居然有問題,第2個引數可以是數字1-7,分別表示週日到週六。
下面貼個全的,需要的時候順便查一下。
一、pl/sql單行函式和組函式詳解
函式是一種有零個或多個引數並且有乙個返回值的程式。在sql中oracle內建了一系列函式,這些函式都可被稱為sql或pl/sql語句,函式主要分為兩大類:單行函式和組函式。
本文將討論如何利用單行函式以及使用規則。
1、sql中的單行函式
sql和pl/sql中自帶很多態別的函式,有字元、數字、日期、轉換、和混合型等多種函式用於處理單行資料,因此這些都可被統稱為單行函式。這些 函式均可用於select,where、order by等子句中,例如下面的例子中就包含了to_char,upper,soundex等單行函式。
select ename,to_char(hiredate,'day,dd-mon-yyyy')from
empwhere upper(ename) like 'al%'order by soundex(ename)
單行函式也可以在其他語句中使用,如update的set子句,insert的values子句,delet的where子句,認證考試特別注意在select語句中使用這些函式,所以我們的注意力也集中在select語句中。
2、null和單行函式
在如何理解null上開始是很困難的,就算是乙個很有經驗的人依然對此感到困惑。null值表示乙個未知資料或者乙個空值,算術操作符的任何乙個操 作數為null值,結果均為提個null值,這個規則也適合很多函式,只有concat,decode,dump,nvl,replace在呼叫了 null引數時能夠返回非null值。在這些中nvl函式時最重要的,因為他能直接處理null值,nvl有兩個引數:nvl(x1,x2),x1和x2 都式表示式,當x1為null時返回x2,否則返回x1。
下面我們看看emp資料表它包含了薪水、獎金兩項,需要計算總的補償。
column name emp_id salary bonuskey type pk nulls/unique nn,
u nnfk table datatype number number numberlength 11.2 11.2
不是簡單的將薪水和獎金加起來就可以了,如果某一行是null值那麼結果就將是null,比如下面的例子:
update empset salary=(salary+bonus)*1.1
這個語句中,雇員的工資和獎金都將更新為乙個新的值,但是如果沒有獎金,即 salary + null,那麼就會得出錯誤的結論,這個時候就要使用nvl函式來排除null值的影響。
所以正確的語句是:
update empset salary=(salary+nvl(bonus,0)*1.1
3、單行字串函式
單行字串函式用於操作字串資料,他們大多數有乙個或多個引數,其中絕大多數返回字串。
ascii()
c1是一字串,返回c1第乙個字母的ascii碼,他的逆函式是chr()
select ascii('a') big_a,ascii('z') big_z from empbig_a big_z65 122
chr()[nchar_cs]
i是乙個數字,函式返回十進位制表示的字元。
select chr(65),chr(122),chr(223) from empchr65 chr122 chr223a z b
concat(,)
c1,c2均為字串,函式將c2連線到c1的後面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1、c2都為null,則返回null。他和操作符||返回的結果相同
select concat('slobo ','svoboda') username from dualusernameslobo syoboda
oracle易忘函式用法 2
initcap c1為一字串。函式將每個單詞的第乙個字母大寫其它字母小寫返回。單詞由空格,控制字元,標點符號限制。select initcap veni,vedi,vici ceasar from dualceasarveni,vedi,vici instr c1,c2均為字串,i,j為整數。函式返...
oracle易忘函式用法 5
6 單行轉換函式 單行轉換函式用於操作多資料型別,在資料型別之間進行轉換。chartorwid c 使乙個字串,函式將c轉換為rwid資料型別。select test id from test case where rowid chartorwid aaaa0saacaaaaliaaa conver...
oracle易忘函式用法 5
6 單行轉換函式 單行轉換函式用於操作多資料型別,在資料型別之間進行轉換。chartorwid c 使乙個字串,函式將c轉換為rwid資料型別。select test id from test case where rowid chartorwid aaaa0saacaaaaliaaa conver...