<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    oracle函數筆記(主要是日期函數)

    Posted on 2008-02-18 23:04 leekiang 閱讀(467) 評論(0)  編輯  收藏 所屬分類: oracle
    1,求一段時間內共跨越了多少天(例如求平均日訪問量時要用到)
    select to_date(to_char(max(t.logdate), 'yyyy-MM-dd'), 'yyyy-MM-dd') -
    ????????????????????????????? to_date(to_char(min(t.logdate), 'yyyy-MM-dd'),'yyyy-MM-dd') + 1
    ???????????????????????? from tb_log t
    2Add_months(d,n)?當前日期d后推n個月(n可以為負數)
    ?? 當找不到某月的匹配日時取該月最后一天。例如3-31后推1個月為4-30
    3,
    last_day(d)? 某日期d所在月份的最后一天
    4,轉換某日期為'yyyy-m-d'格式
    ??? select to_char(sysdate, 'yyyy') || '-' || to_number(to_char(sysdate, 'mm')) || '-' ||
    ?????? to_number(to_char(sysdate, 'dd')) from dual
    5,查詢
    系統時間戳的毫秒值
    SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400000 +
    ?????? TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF')) AS MILLIONS
    ? FROM DUAL
    見http://yangtingkun.itpub.net/post/468/244564

    6,oracle函數處理字符串時,下標是從1開始的。

    7,
    INSTR方法的格式為
    INSTR(源字符串, 目標字符串, 起始位置, 匹配序號)? (注:起始位置是從1開始,不能從0開始)
    例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串為'CORPORATE FLOOR', 目標字符串為'OR',起始位置為3,取第2個匹配項的位置。
    默認查找順序為從左到右。當起始位置為負數的時候,從右邊開始查找。
    所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的顯示結果是
    Instring
    ——————
    14

    注:
    INSTR('test','a')得到的是0,而不是-1
    參考:
    http://df41.spaces.live.com/blog/cns!D064C4537B2605A6!317.entry
    http://hi.baidu.com/fgfd0/blog/item/7a48d5f9155a0059252df2dc.html

    8,to_date時報"格式代碼出現兩次"
    ?? 原因是"
    You are using MM twice"

    9,substr( string, start_position, [length])? 下標從1開始
    substr('This is a test', 6, 2)?? would return 'is'
    substr('This is a test', 6)????? would return 'is a test'
    substr('TechOnTheNet', 1, 4)???? would return 'Tech'
    substr('TechOnTheNet', -3, 3)??? would return 'Net'
    substr('TechOnTheNet', -6, 3)??? would return 'The'
    substr('TechOnTheNet', -8, 2)??? would return 'On'

    10,select to_date(2008-03-14 14:49:37,'yyyy-MM-dd hh24:mi')? from dual
    報錯:ora-01830錯誤:日期格式圖片在轉換整個輸入字符串之前結束
    原因是格式化的字符竄長度大于格式化標準(yyyy-MM-dd hh24:mi)的長度
    注意:月份的mm大小寫不一樣,hh24和hh不一樣,分鐘用mi而不是mm

    11,lengthb查看字節數

    12,case的用法
    select case when t.classtype = 1 then
    ????????? '名稱一'
    ???????? when t.classtype = 2 then
    ????????? '名城二'
    ?????? end name from tb_test t

    13,
    where?? t.fsdate <= to_date('2007-12-15','yyyy-mm-dd')
    ?where?? to_char(t.fsdate,'yyyy-mm-dd')<='2007-12-15'

    14,decode
    decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)

    15,跨多少月
    select to_char(add_months(to_date('1999-2', 'yyyy-mm'), (rownum - 1)), 'YYYY-MM') as TEMPMONTH from dual connect by rownum < months_between(to_date('2009-9', 'yyyy-mm'), to_date('1999-2', 'yyyy-mm')) + 2

    16,統計字符串中某個字符出現的次數
    SELECT LENGTHB('ABCDEFGEFGDBE')-LENGTHB(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL;
    http://windows9834.blog.163.com/blog/static/2734500420103154920954/
    主站蜘蛛池模板: 亚洲av无码片在线观看| 亚洲嫩模在线观看| 亚洲人成网站999久久久综合| 免费人成视频在线观看网站| 久久精品国产亚洲AV麻豆不卡| 精品免费久久久久国产一区| 亚洲色图综合在线| 国产性生大片免费观看性| 亚洲成av人影院| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 美美女高清毛片视频黄的一免费| 国产资源免费观看| 四虎精品成人免费视频| 亚洲综合在线另类色区奇米| 久久久久久久99精品免费观看| 久久精品国产亚洲AV高清热| 大学生一级毛片免费看| 欧洲亚洲综合一区二区三区| 亚洲欧洲精品成人久久奇米网| 免费无码又爽又刺激一高潮| 亚洲精品视频在线观看免费| 成人特黄a级毛片免费视频| 人人狠狠综合久久亚洲| 亚洲综合伊人久久大杳蕉| 99热在线免费播放| 亚洲Av永久无码精品一区二区 | 久久亚洲精品中文字幕无码| 国产精品视频免费观看| 午夜亚洲乱码伦小说区69堂| 亚洲男人的天堂www| 男女免费观看在线爽爽爽视频| 亚洲av综合av一区二区三区| 国产亚洲大尺度无码无码专线| 特级无码毛片免费视频尤物| 亚洲真人无码永久在线观看| 免费在线观看理论片| 人妻无码一区二区三区免费| 美女羞羞喷液视频免费| 亚洲高清美女一区二区三区| 又粗又硬免费毛片| 18禁黄网站禁片免费观看不卡|