首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

用sql兑现通过已知的年,月,第几周和周几,得到具体的日期

2012-07-04 
用sql实现通过已知的年,月,第几周和周几,得到具体的日期CREATE OR REPLACE FUNCTION get_date2(ynumber,mn

用sql实现通过已知的年,月,第几周和周几,得到具体的日期
CREATE OR REPLACE FUNCTION get_date2(y   number,
                                     m   number,
                                     idx number, --  第几个n
                                     dow NUMBER --  星期 m
                                     ) RETURN DATE IS
  v_date DATE;
  v_cnt  NUMBER := 0;
BEGIN
  IF idx NOT BETWEEN 1 AND 5 THEN
    RETURN NULL;
  END IF;
  --  上个月的最后一天.   
  v_date := TO_DATE(y || '-' || m, 'YYYY-MM') - 1;
  WHILE TRUE LOOP
    SELECT next_day(v_date, dow) INTO v_date FROM dual;
    v_cnt := v_cnt + 1;
    IF idx = v_cnt THEN
      EXIT;
    END IF;
  END LOOP;
  RETURN v_date;
END;

热点排行