oracle APEX自动计算日期
Automatically calculate the date oracle APEX
如何根据用户的输入计算日期?
也就是说,根据用户输入的内容,当前日期将增加 3 个月或 5 个月等
我尝试向日期选择器添加计算:
- SUBMISSION_DATE只显示当前日期(已实现)
- DATE_OF_ISSUE 应该是 SUBMISSION_DATE +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 匹配。通常充其量是一个危险的假设,
如何根据用户的输入计算日期? 也就是说,根据用户输入的内容,当前日期将增加 3 个月或 5 个月等
我尝试向日期选择器添加计算:
- SUBMISSION_DATE只显示当前日期(已实现)
- DATE_OF_ISSUE 应该是 SUBMISSION_DATE +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 匹配。通常充其量是一个危险的假设,