oracle APEX自动计算日期

Automatically calculate the date oracle APEX

如何根据用户的输入计算日期? 也就是说,根据用户输入的内容,当前日期将增加 3 个月或 5 个月等

我尝试向日期选择器添加计算:

我还使用以下 pl/sql 函数体向该日期添加了一个计算,但它不起作用。

DECLARE
sub_date DATE default null;
BEGIN
if :P75_THESISTYPE =1
then 
sub_date := :P75_SUBMISSION_DATE +6;
else
sub_date := :P75_SUBMISSION_DATE +3;
END IF;
return sub_date;
end;

页面项目被视为 VARCHAR2,因此您需要在对它们执行算术运算之前将它们转换为日期:

DECLARE
  sub_date DATE default null;
BEGIN
  if :P75_THESISTYPE =1
  then 
    sub_date := TO_DATE(:P75_SUBMISSION_DATE) +6;
  else
    sub_date := TO_DATE(:P75_SUBMISSION_DATE) +3;
  END IF;
  return sub_date;
end;
/

@TonyAndrews 的流程是正确的,但由于他遵循了您最初的陈述,因此不会给出预期的结果。将整数添加到数据会添加 天数 而不是月数。你需要的是 ADD_Months 函数;所以:

DECLARE
  sub_date DATE default null;
BEGIN
  if :P75_THESISTYPE =1
  then 
    sub_date := add_months(to_date(:P75_SUBMISSION_DATE),6);
  else
    sub_date := add_months(to_date(:P75_SUBMISSION_DATE),3);
  end if
  return sub_date;
end;
/

当然,以上假定您的变量格式与您的 nls_data_format 匹配。通常充其量是一个危险的假设,