取得指定日期所在周的第一日和最后一日

来源:互联网 发布:星际淘宝网 88 编辑:程序博客网 时间:2024/06/01 10:13

自己第一次写的ORACLE函数,很简单,但希望对大家有帮助。

create or replace function FIRST_LAST_WEEK_DAY(IN_DAY IN DATE,
                                               I      IN INTEGER)
  return VARCHAR2 is
  Result VARCHAR2(8);
  J      INTEGER;
begin
  /*
  获取一周中的第一日 first_last_week_day(sysdate,0)
  获取一周中的最后一日 first_last_week_day(sysdate,1)
  */
  SELECT TO_CHAR(IN_DAY, 'D') INTO J FROM DUAL;
  IF I = 0 THEN
    RESULT := TO_CHAR(IN_DAY - J + 1, 'YYYYMMDD');
  ELSE
    RESULT := TO_CHAR(IN_DAY + (7 - J), 'YYYYMMDD');
  END IF;
  return(Result);
end FIRST_LAST_WEEK_DAY;