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

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

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

    隨筆-71  評論-4  文章-0  trackbacks-0
    create or replace function TF_ISSUE_DATE(ISSUE IN VARCHAR2,DATE_TYPE IN VARCHAR2) return DATE  --參數(shù)DATE_TYPE 返回日期類型  0起始日期 1中止日期
    is
      V_RETURN DATE;
      V_ISSUE VARCHAR2(20) :=ISSUE;
      V_DATE_TYPE VARCHAR2(20) := DATE_TYPE;
      V_ISSUE_TYPE VARCHAR2(20) :=SUBSTR(ISSUE,1,1);
    begin
      IF V_DATE_TYPE = '0' THEN
        CASE
        WHEN V_ISSUE_TYPE = '1'  --年
        THEN V_RETURN := TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD');
             
        WHEN V_ISSUE_TYPE = '2'  --季
        THEN SELECT DECODE( SUBSTR(V_ISSUE,6,2),
                            '01',TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD'),
                            '02',TO_DATE(SUBSTR(V_ISSUE,2,4)||'0401','YYYY-MM-DD'),
                            '03',TO_DATE(SUBSTR(V_ISSUE,2,4)||'0701','YYYY-MM-DD'),
                            '04',TO_DATE(SUBSTR(V_ISSUE,2,4)||'1001','YYYY-MM-DD'),TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD'))
                    INTO V_RETURN
              FROM DUAL;
             
        WHEN V_ISSUE_TYPE = '3' --月
        THEN V_RETURN := TO_DATE(SUBSTR(V_ISSUE,2,6)||'01','YYYY-MM-DD');
             
        WHEN V_ISSUE_TYPE = '4' --旬
        THEN SELECT AA INTO V_RETURN FROM (
                SELECT aa ,ROWNUM BB
                FROM (
                     SELECT (TO_DATE (SUBSTR(V_ISSUE,2,6)||'01', 'yyyy-mm-dd') + ROWNUM - 1) aa  ,rownum cc
                     FROM all_objects
                     WHERE ROWNUM < TO_DATE(TO_CHAR(last_day(TO_DATE (SUBSTR(V_ISSUE,2,6)||'01', 'yyyy-mm-dd')),'YYYYMMDD'),'YYYY-MM-DD') - TO_DATE (SUBSTR(V_ISSUE,2,6)||'01', 'yyyy-mm-dd') + 1) bb 
                WHERE MOD (TO_CHAR (aa, 'dd'), 10) = 1 and to_char(aa,'dd') <> 31 )
              WHERE BB = TO_NUMBER(SUBSTR(V_ISSUE,8,2));
             
        WHEN V_ISSUE_TYPE = '5' --周
        THEN SELECT MONDAY INTO V_RETURN FROM (
                select
                MONDAY.the_week,decode(sign(MONDAY.the_day-SUNDAY.the_day),-1,MONDAY.the_day,MONDAY.the_day-7) MONDAY,SUNDAY.the_day SUNDAY
                from
                     (select to_char(wwm,'WW') the_week,to_char(wwm,'D') the_daynum,wwm the_day
                      from (
                           select trunc(TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD'), 'MM')+rownum-1 as wwm
                           from user_objects
                           where rownum < 366
                           )
                      where to_char(wwm,'D')=2 ) MONDAY,
                     (select to_char(wwm,'WW') the_week,to_char(wwm,'D') the_daynum,wwm the_day 
                      from (
                            select trunc(TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD'), 'MM')+rownum-1 as wwm
                            from user_objects
                            where rownum < 366
                           )
                      where to_char(wwm,'D')=1 ) SUNDAY
                where MONDAY.the_week=SUNDAY.the_week)
             WHERE THE_WEEK = SUBSTR(V_ISSUE,6,2);
             
        WHEN V_ISSUE_TYPE = '6' --日
        THEN V_RETURN := TO_DATE(SUBSTR(V_ISSUE,2,8),'YYYY-MM-DD');
             
        ELSE
            V_RETURN := TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD');
        END CASE;
      ELSE
        CASE
        WHEN V_ISSUE_TYPE = '1'
        THEN V_RETURN := TO_DATE(SUBSTR(V_ISSUE,2,4)||'1231','YYYY-MM-DD');
             
        WHEN V_ISSUE_TYPE = '2'
        THEN SELECT DECODE( SUBSTR(V_ISSUE,6,2),
                            '01',TO_DATE(SUBSTR(V_ISSUE,2,4)||'0331','YYYY-MM-DD'),
                            '02',TO_DATE(SUBSTR(V_ISSUE,2,4)||'0630','YYYY-MM-DD'),
                            '03',TO_DATE(SUBSTR(V_ISSUE,2,4)||'0930','YYYY-MM-DD'),
                            '04',TO_DATE(SUBSTR(V_ISSUE,2,4)||'1231','YYYY-MM-DD'),
                            TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD'))
                    INTO V_RETURN
              FROM DUAL;
             
        WHEN V_ISSUE_TYPE = '3'
        THEN V_RETURN := TO_DATE(TO_CHAR(last_day(TO_DATE(SUBSTR(V_ISSUE,2,6)||'01','YYYY-MM-DD')),'YYYYMMDD'),'YYYY-MM-DD');
             
        WHEN V_ISSUE_TYPE = '4'
        THEN SELECT DECODE( SUBSTR(V_ISSUE,8,2),
                            '01',TO_DATE(SUBSTR(V_ISSUE,2,6)||'10','YYYY-MM-DD'),
                            '02',TO_DATE(SUBSTR(V_ISSUE,2,6)||'20','YYYY-MM-DD'),
                            '03',TO_DATE(TO_CHAR(last_day(TO_DATE(SUBSTR(V_ISSUE,2,6)||'01','YYYY-MM-DD')),'YYYYMMDD'),'YYYY-MM-DD'),
                            TO_DATE(TO_CHAR(last_day(TO_DATE(SUBSTR(V_ISSUE,2,6)||'01','YYYY-MM-DD')),'YYYYMMDD'),'YYYY-MM-DD'))
                    INTO V_RETURN
              FROM DUAL;
             
        WHEN V_ISSUE_TYPE = '5'
        THEN SELECT SUNDAY INTO V_RETURN FROM (
                select
                MONDAY.the_week,decode(sign(MONDAY.the_day-SUNDAY.the_day),-1,MONDAY.the_day,MONDAY.the_day-7) MONDAY,SUNDAY.the_day SUNDAY
                from
                     (select to_char(wwm,'WW') the_week,to_char(wwm,'D') the_daynum,wwm the_day
                      from (
                           select trunc(TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD'), 'MM')+rownum-1 as wwm
                           from user_objects
                           where rownum < 366
                           )
                      where to_char(wwm,'D')=2 ) MONDAY,
                     (select to_char(wwm,'WW') the_week,to_char(wwm,'D') the_daynum,wwm the_day 
                      from (
                            select trunc(TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD'), 'MM')+rownum-1 as wwm
                            from user_objects
                            where rownum < 366
                           )
                      where to_char(wwm,'D')=1 ) SUNDAY
                where MONDAY.the_week=SUNDAY.the_week)
             WHERE THE_WEEK = SUBSTR(V_ISSUE,6,2);
             
        WHEN V_ISSUE_TYPE = '6'
        THEN V_RETURN := TO_DATE(SUBSTR(V_ISSUE,2,8),'YYYY-MM-DD');
             
        ELSE
            V_RETURN := TO_DATE(SUBSTR(V_ISSUE,2,4)||'0101','YYYY-MM-DD');
        END CASE;
      END IF;
      return(V_RETURN);
    end TF_ISSUE_DATE;
    posted on 2007-07-24 16:43 zjw_albert 閱讀(203) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 久久国产一片免费观看| 男男gay做爽爽免费视频| 无码免费一区二区三区免费播放| 国产亚洲精品无码专区 | 亚洲国产午夜精品理论片| 日韩精品内射视频免费观看| 亚洲久本草在线中文字幕| 免费人成在线观看网站品爱网| 91精品国产亚洲爽啪在线观看| 24小时日本韩国高清免费| 亚洲精品91在线| 在线jlzzjlzz免费播放| 国产产在线精品亚洲AAVV| 国产精品亚洲美女久久久 | 亚洲视频国产精品| 美女视频黄是免费的网址| 亚洲精品自偷自拍无码| 四虎永久免费地址在线观看| 精精国产www视频在线观看免费| 亚洲av无码专区国产乱码在线观看| 最近2018中文字幕免费视频| 精品丝袜国产自在线拍亚洲| 免费一级毛片清高播放| 黄色短视频免费看| 亚洲综合激情视频| 暖暖日本免费在线视频| igao激情在线视频免费| 久久精品国产亚洲AV无码娇色| 欧美最猛性xxxxx免费| 日韩精品免费一线在线观看 | 一本色道久久综合亚洲精品蜜桃冫 | 亚洲一区二区三区高清| 免费视频淫片aa毛片| 西西人体免费视频| 亚洲乱码一区二区三区国产精品| 亚洲成人高清在线| 120秒男女动态视频免费| 国产精品久久久久久亚洲小说| 国产成A人亚洲精V品无码性色| 无码视频免费一区二三区| yy一级毛片免费视频|