<menu id="a2esi"><strong id="a2esi"></strong></menu>
  • <nav id="a2esi"></nav>
    學校總部  | 設為首頁 | 加入收藏 | 官方微信
    內威培訓
    打造“培訓+就業”一站式服務品牌!
    banner1
    • Python+AI工程師
    • Web前端工程師
    • Java軟件開發工程師

    首頁>>學員天地

    oracle字符串函數和日期函數
    編輯:eamol  閱讀:5168次  發布:15-07-16

    /*-----------------------------------------------------oracle函數--------------------------------------------------------------*/

    /*---------------------------字符串函數-------------------------*/
    --1.ascii(char) 返回指定字符轉化為ascii碼值

    select ascii('a') as asc1,ascii('A') as asc2 from dual;

    --返回結果:
    ----------
    asc1 asc2
    97    65

    --2.char(n) 返回給定的ascii值轉化為對應的字符

    select char(65) as char1,char(97) as char2  from dual;

    --返回結果:
    char1 char2
    ---------------
     A      a

    --3.concat(char1,char2) 返回連接的字符串

    select concat('abc','123') as concat  from dual;

    --返回結果:
    concat
    -------
    abc123

    --4.initcap(char) 將英文單詞首字母轉換為大寫字母

    select initcap('abc efg') as initcap from dual;

    --返回結果:

    initcap
    --------
    Abc Efg

    --5.instr(char1,char2,[,n[,m]])從字符串char1中查找字符char2的位置,數值n為其實搜索位置,數值m為字符char2出現的次數,n和m省略不指定時默認值為1

    select instr('abcefg','ce') as instr from dual;

    --返回結果:

    instr
    -----
    3


    --6.length(char) 返回字符串的長度

    select length('abcdef') as length from dual;

    --結果:
    length
    ------
    7

    --7. lower(char) 將字符串轉化為小寫字母

    --8. upper(char) 將字符串轉化為大寫字母

    --9. lpad(char1,n,char2) 在char1字符串的左邊填充char2字符串,直至字符串的長度等于n,當char1的長度大于n時,將不會進行左填充。

    select lpad('007',10,'x') as lpad from dual;

    --結果:

    lpad
    ----------
    xxxxxxx007

    --10.rpad(char1,n,char2) 在char1字符串的右邊填充char2字符串,直至字符串的長度等于n,當char1的長度大于n時,將不會進行右填充。

    select rpad('007',10,'*') as rpad from dual;

    --結果:

    rpad
    ----------
    007*******

    --11.ltrim() 將從左邊第一個字符開始與char2相同的字符逐一去除,示例如下:

    select ltrim('xxxxxxx007','x') as ltrim from dual;

    --結果:
    ltrim
    ------
    007

    --12. rtrim() 將從右邊第一個字符開始與char2相同的字符逐一去除,示例如下:

    select ltrim('007*******','*') as ltrim from dual;

    --結果:

    rtrim
    ------
    007

    --13. trim(char1 from char2) 對字符串char2的頭尾兩端截斷char1字符串,示例如下:

    select trim('x' from 'xxx20111213xxx') as trim from dual;

    --結果:
    trim
    ---------
    20111213

    --14. substr(char,m[,n]) 對字符串char從m的位置開始截取n個字符串,如果m是正數是從左邊截取,如果m為負數是從右邊開始截取,示例如下:

    select substr('xxx007***',4,3) as substr from dual;

    --結果:
    substr
    --------
    007

    --15.  replace(char1,char2[,char3]) 在字符串char1里查找是否有字符串char2的字符,如果有,將使用char3進行替換

    select replace('acdef','e','@') as replace from dual;

    --結果:

    replace
    --------
    acd@f

    --16. translate(char1,char2,char3)  對char1字符串,按照char2和char3字符位置的對應關系進行對照轉換,示例如下:

    select translate('abcdefghijk@#$','abcdefghij','123456890') as translate from dual;

    --結果:

    translate
    -------------
    1234567890@#$


    /*-------------------------------------------------------日期函數---------------------------------------------------------------*/

    --1. add_months(date,n) 用于對日期類型的date增加或減少n個月份,當n為正數時表示增加月份,當n為負數時表示減少月份,示例如下:

    select add_months(date '2012-12-13',2) as add1,add_months(date '2012-12-13',-2) as add2 from dual

    結果:
    -------------
    add1        add2
    2012-2-13   2012-10-13 

    --2. current_date 返回會話時區所對應的日期時間

    select current_date from dual

    current_date
    ------------
    2015-07-21

    --3. current_timestamp 用于返回當前會話時區所對應的日期時間,返回類型為時間戳類型,示例如下:

    select current_timestamp from dual

    --結果
    current_timestamp
    ----------------------
    此處略

    --4. extract(format from date) 根據format的格式獲取date日期里的指定日期數據

    select extract(year from date '2012-12-31') as extract from dual;

    extract
    -------
    2012

    --5. last_day(date)   返回日期date所在月份的最后一天,示例如下:

    select last_day(date '2012-12-21') as last_day from dual;

    last_day
    -----------
    2012-12-31

    --6.  months_between(date1,date2) 返回date1和date2這兩個日期之間相差的月份數,當date1小于date2時返回的值是負數,示例如下:

    select months_between(date '2012-1-1',date '2012-10-10') as months1,months_between(date '2012-10-10',date '2012-1-1') as months1 from dual

     months1     months2
    -----------------------
    -9.2903226  9.29032258

    --7. next_day(date,char)  返回計算date時間開始的下一個星期 char的具體時間日期,date是一個時間,char是"星期一"至"星期日" 這七個中的一個。示例如下:

    select next_day(date '2012-1-1','星期一') as next_day from dual;

    next_day
    -----------
    2012-01-02

    --8. round(date[,format]) 對日期date按format格式進行四舍五入返回結果日期格式

    select round(date '2011-7-16','yyyy') as round1,round(date '2011-7-16','mm') as round2 from dual;

    round1          round2
    ---------------------------
    2012-01-01    2011-08-01

    --9. sysdate 返回當前系統的日期時間,示例如下:

    select sysdate from dual;

    sysdate
    -----------
    2015-07-14

    --10. systemstamp 返回當前系統的日期時間及時區,示例如下:

    select systimestamp from dual;

    --11.trunc(date[,format]) 對日期date進行截取返回結果日期格式,示例如下:

    select trunc(date '2011-7-16,‘yyyy’')  as trunc1,trunc(date '2011-7-16','mm') as trunc2 from dual


    --結果:
    trunc1                 trunc2
    ---------------------------------------
    2011-01-01          2011-07-01
               



    上一篇: 數據庫復制技術之快照復制   下一篇: sqlserver中T-sql語句提供的排序函數
    返回列表
    網絡大專、自考本科,學歷輕松拿!
    ©2016-2020 上海內威職業技能培訓學校 版權所有
    普陀區武寧路1500號中樓2-3層(郵編:200062)
    咨詢:021-62434966  合作:021-13371929650  就業:021-62434966  傳真:  電郵:service@snetway.com
    《中華人民共和國電信與信息服務業務》經營許可證滬ICP備15002602號 
    <menu id="a2esi"><strong id="a2esi"></strong></menu>
  • <nav id="a2esi"></nav>
    本溪娱网棋牌