Plsql 在oracle中,如果所选日期为星期一,如何从日期获取最后一个工作日
我想在oracle数据库中创建一个函数。在这种情况下,我希望从所选日期中获取前一天的日期,如果所选日期是星期一,则我希望选择星期五的日期作为前一天的日期,因为这是一周中的最后一个工作日。请尝试以下操作:Plsql 在oracle中,如果所选日期为星期一,如何从日期获取最后一个工作日,plsql,oracle10g,Plsql,Oracle10g,我想在oracle数据库中创建一个函数。在这种情况下,我希望从所选日期中获取前一天的日期,如果所选日期是星期一,则我希望选择星期五的日期作为前一天的日期,因为这是一周中的最后一个工作日。请尝试以下操作: CREATE OR REPLACE FUNCTION PREVIOUS_WORKING_DAY(pDate IN DATE) RETURN DATE IS strDay_of_week VARCHAR2(50); dtPrev DATE; BEGIN strD
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;
分享和享受。发布一些您尝试使用的代码,以便获得帮助。修剪strDay_of_week的值可以得到准确的结果result@hiFI-我没有意识到TO_CHAR返回的带有“DAY”格式的字符串后面有空格。你完全正确。非常感谢。不幸的是,我不能回去批准你所做的编辑,尽管如果可以的话我会的。是相关的,我已经发布了一条评论,表示我认为是时候实现这个功能了。无论如何,非常感谢你指出这一点。