1、安裝oracle后,運行程序,輸入用戶名等信息登錄。
創新互聯建站公司2013年成立,先為武城等服務建站,武城等地企業,進行企業商務咨詢服務。為武城企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
2、下面演示sysdate的用法,這個是oracle獨有的,取當前時間。
3、下面介紹to_char()函數的用法,將時間轉化為特定的格式。
4、下面介紹一種將時間轉化為漢字形式的時間格式及顯示出星期。
5、下面演示to_date函數的使用方法,將字符串轉換為標準的時間格式。
create
or
replace
function
datediff(type
in
varchar2,
startTime
in
varchar2,endTime
in
varchar2,v
in
varchar2)
return
number
as
v_result
number;
sql_1
varchar2(200);
begin
dbms_output.put_line('1');
if(type
=
'day')
then
sql_1
:=
'select
'||v||'(TO_NUMBER(to_date('''||startTime||''',''YYYY-MM-DD'')
-
to_date('''||endTime||''',''YYYY-MM-DD'')))
from
dual';
dbms_output.put_line('1');
elsif(type
=
'month')
then
sql_1
:=
'select
'||v||'(months_between(to_date('''||startTime||''',''YYYY-MM-DD'')
-
to_date('''||endTime||''',''YYYY-MM-DD'')))
from
dual'
;
dbms_output.put_line('1');
elsif(type
=
'week')
then
dbms_output.put_line('1');
sql_1
:=
'select
'||v||'(TO_NUMBER(to_date('''||startTime||''',''YYYY-MM-DD'')
-
to_date('''||endTime||''',''YYYY-MM-DD''))/7)
from
dual
';
end
if;
dbms_output.put_line(sql_1);
EXECUTE
IMMEDIATE
sql_1
into
v_result
;
return
(v_result);
end;
使用時候可以這樣:
select
datediff('week','2012-09-01','2012-08-01','round')
from
dual
;
--說明'week'表示周,'month'表示月,'day'表示天
--中間傳倆日期
--第四個參數:周或月四舍五入用‘round’
,向上取整用‘ceil’
向下取整用‘floor’
call GetPY(@str varchar(500)) 就可以了
sql2005中是exec GetPY(@str varchar(500)) 。
接收字符返回字符或數值時可以使用dual偽表
1、把小寫字符轉換成大寫
select supper(“smi”) form dual
2、把大寫轉換成小寫
lower(“SMI”)
3、首字母大寫
initcap(“smi”)
4、字符串的連接可以使用concat,也可以使用? ? 建議使用
concat(“hello”“world”) 結果為helloworld
5、字符串的截取,使用substr,第一個參數為字符串,第二個參數是索引,第三個參數結束索引(開始索引使用0和1效果一樣)
substr(hello,0,3) 結果為hel
6、獲取字符串長度
length(“hello”)
7、字符串替換,第二個參數為被替換的字符串,第三個是替換的字符串
replace(“hello”,“l”,“x”) 結果為hexxo
1、四舍五入函數ROUND()
默認取整,可以指定保留位數
round(12.523)? 結果為13
round(12.537,2) 結果為12.54
2、取整TRUNC
默認全部去掉小數,可以指定位數
trunc(12.789) 結果為12
3、取余數MOD
mod(10,3) 結果為1
oracle中提供了很多和日期相關的函數,包括日期的加減
日期 - 數字 =日期
日期 - 日期 = 數字(天)
1、如:查詢員工進入公司的走數
(sysdate - 入職日期)/7
注:當前日期查詢select sysdate form dual
2、查詢所有員工進入公司的月數
獲取兩個時間段的月數使用months_between(sysdate,入職日期)
3、獲取幾個月后的日期:add_months()
如:獲取員工三個月后的日期
add_months(sysdate,3)
4、如求出下星期一是什么時候
指定給出下次某日期數next_date()
next_date(sysdate,“星期一”)
5、求日期的最后一天last_day()
求出本月的最后一天
last_day(sysdate)
1、to_char字符串轉換函數
如:將所有員工的入職日期的年、月分開
注:在劃分時需要通配符
年:yyyy? 月:mm? 日:dd
時:HH 分:mi? 秒:ss
定義時間格式
to_char(sysdate,“yyyy-mm-dd HH24:mi:ss”)
在10以下的月數前面會默認加上前導零,去除加上fm
to_char(sysdate,“fmyyyy-mm-dd HH24:mi:ss”)
to_char還可以給數字做格式化
如將員工的工資按三位“,”分隔
to_char(工資,“99,999”) 9代表數字
如果想在錢上加上國家符號
美元使用
中文使用l
to_char(工資,“99,999”)
to_char(工資,“l99,999”)
2、to_number數值轉換函數,將字符串轉換成數值
to_number(“10”) +to_number(“10”)
3、to_date日期轉換函數,將字符串數據轉換成日期類型
to_date(“1997-05-12”,“YYYY-mm-dd”)? 1997/05/12
1、空值處理 nvl
如果在查詢的時候存在空值的情況可以使用
nvl(comm,0) 當comm的列值為空時,用0代替
2、decode函數
該函數類似于if ...else if ...else
語法:decode(列名/值,search1,result1,search2,result2,default)
decode(中國,中國,我是中國,美國,我是美國,其他)
如果為中國返回我是中國,為美國返回我是美國,為其他字符則返回其他。
3、case when 與decode差不多
語法 case when city=中國 then 我是中國
? ? ? ? ? when city=美國 then 我是美國
? ? ? ? ? ? else 其他
使用to_date函數。
你返回的varchar2總有一定的規則吧,比如是yyyy-mm-dd hh24:mi:ss格式的。
那你的返回語句就寫成
return to_date(enddate, 'yyyy-mm-dd hh24:mi:ss');
分享名稱:怎么掉oracle函數,oracle中函數用法
URL地址:http://vcdvsql.cn/article38/hedjpp.html
成都網站建設公司_創新互聯,為您提供微信小程序、網站導航、虛擬主機、營銷型網站建設、外貿建站、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯