在oracle中怎么判断 例如6.1是星期日,是这个月的第一个星期,6.8是这个月的第2个星期,6.15是第三 依次类推,怎么实现

解决方案 »

  1.   

    判断某天是周几to_char(sysdate,'d')出来1的话就是周日,1就是周一,以此类推
      

  2.   

    SELECT CASE
                                     WHEN TRUNC (sysdate, 'mm') =
                                                        TRUNC (sysdate)
                                      OR TO_CHAR (TRUNC (sysdate, 'mm'),
                                                  'IW'
                                                 ) =
                                             TO_CHAR (TRUNC (sysdate), 'IW')
                                        THEN 1
                                     ELSE   TO_CHAR (TRUNC (sysdate), 'IW')
                                          - TO_CHAR (TRUNC (sysdate, 'mm'),
                                                     'IW'
                                                    )
                                          + 1
                                  END num
                             FROM DUAL用我这段sql你可以判断任何一个日子是当月的第几周
    如果1号为周日的话,也算一周,今天27号,就是第五周
    可以把sysdate换成任何日子
      

  3.   

    declare
    v_f date;
    v_next date;
    v_num  number;
    begin
      select trunc(to_number(to_char(last_day(sysdate),'dd'))/7) into v_num from dual;
      select trunc(sysdate,'mm') into v_f from dual;
     for i in 1..v_num loop
        select next_day(v_f,1) into v_next from dual;
        v_f:=v_next;
       dbms_output.put_line(v_next);
     end loop;
    end;