0

我需要让 v_återdatum 在“YYYY-MM-DD hh24:mi:ss”中显示 sysdate+p_dagar,但我不知道该怎么做。我只用 YYYY-MM-DD 就能做到这一点,但我也不知道如何获得秒数。

这是我目前得到的:

create or replace
function get_återdatum(
p_dagar number)
return date
as
v_återdatum date;
v_datum date := sysdate;
begin
v_återdatum:=to_date(v_datum, 'YYYY-MM-DD hh24:mi:ss'+ p_dagar) ;

return v_återdatum;

end;

当我调用该函数时,我没有在输出中得到 hh12:mi:ss 。

4

1 回答 1

0

v_datum是日期类型,p_dagar是一个数字。您可以将数字添加到日期,结果将是日期。所以,你的函数体将很简单,

v_återdatum := v_datum + p_dagar;

返回的日期将包含时间部分,但可能不会根据 NLS_DATE_FORMAT 参数显示,您可以使用此查询进行检查。

select *
  from v$nls_parameters
 where parameter = 'NLS_DATE_FORMAT';

使用 TO_CHAR 函数明确指定显示格式总是更好。

select to_char(get_återdatum(7), 'yyyy-mm-dd hh24:mi:ss') from dual;
于 2013-10-17T03:58:46.723 回答