如果选择日期是oracle中的星期一,如何从日期开始上一个工作日

时间:2014-10-22 14:42:15

标签: plsql oracle10g

我想在oracle数据库中创建一个函数。在女巫我想从所选日期获得前一天的日期,如果选择的日期是"星期一"然后我想选择"星期五"的日期作为上一个工作日的上一个日期。

1 个答案:

答案 0 :(得分:2)

试试这个:

CREATE OR REPLACE FUNCTION PREVIOUS_WORKING_DAY(pDate IN DATE)
  RETURN DATE
IS
  strDay_of_week  VARCHAR2(50);
  dtPrev          DATE;
BEGIN
  strDay_of_week := TRIM(TO_CHAR(pDate, 'DAY'));

  CASE strDay_of_week
    WHEN 'MONDAY' THEN
      dtPrev := TRUNC(pDate) - INTERVAL '3' DAY;
    WHEN 'SUNDAY' THEN
      dtPrev := TRUNC(pDate) - INTERVAL '2' DAY;
    ELSE
      dtPrev := TRUNC(pDATE) - INTERVAL '1' DAY;
  END CASE;

  RETURN dtPrev;
END PREVIOUS_WORKING_DAY;

分享并享受。