2017-10-13 37 views
1

一个人今天租一辆车7天。该函数将返回:日期+小时+分钟。提前致谢! :)PL/SQL代码:创建一个函数get_return_date。

create or replace function get_return_date(
p_days in number) 
return varchar2 
is 
begin 
return to_char(sysdate,'YYYY-MM-DD:HH24:MI') + p_days; 
end; 
/
+0

为什么我得到一个错误时,采取 – Skorpan

+0

错误,如果尝试选择get_return_date(7)双; – Skorpan

+0

是否有一些具体的原因是你返回字符串而不是日期? –

回答

1

加入天之前转换为字符串:

create or replace function get_return_date(
p_days in number) 
return varchar2 
is 
begin 
    return to_char(sysdate + p_days,'YYYY-MM-DD:HH24:MI'); 
end; 
/
+0

非常感谢:)):) – Skorpan

0

你的代码是不工作的原因是因为你需要你转换为字符串之前,做数学题。从本质上讲,这是你在告诉编译器:

“星期一” + 2

这不会让在数学方面的任何意义,所以它抛出一个错误。 sysdate实际上已经是一个数字,所以你可以添加另一个数字。然后,你用你的to_char到单个值转换为这样的格式化字符串:

create or replace function get_return_date(
p_days in number) 
return varchar2 
is 
begin 
return to_char(sysdate + p_days,'YYYY-MM-DD:HH24:MI'); 
end; 
/
+0

非常感谢,现在对我有意义! :):) – Skorpan

+0

没问题。如果其中一个答案解决了您的问题,请将其标记为已接受,以向其他用户指出您的问题已解决。 – SandPiper