create or replace function f$getTime(
time1 nvarchar2
)
return nvarchar2
as
var_value nvarchar2(255);
begin
 select trunc(15960/3600/24) || '天' || to_char(to_date(mod(15960,3600*24),'sssssss'),'fmhh24":"mi":"ss""') 
 into var_value from dual 
return var_value;
end;哪里错了 在线求助!

解决方案 »

  1.   

    create or replace function f$getTime(
    time1 nvarchar2
    )
    return nvarchar2
    as
    var_value nvarchar2(255);
    begin
     select trunc(15960/3600/24) || '天' || to_char(to_date(mod(15960,3600*24),'sssssss'),'fmhh24":"mi":"ss""')
     into var_value from dual;
    return var_value;
    end;
      

  2.   

    \
    create or replace function fgetTime(time1 in nvarchar2)
    return nvarchar2
    as
    var_value nvarchar2(255);
    begin
     select trunc(15960/3600/24) || '天' || to_char(to_date(mod(15960,3600*24),'sssssss'),'fmhh24":"mi":"ss""')
     into var_value from dual;  --缺少分号,可以放在函数里调试一下就能看到报错的信息
    return var_value;
    end;
      

  3.   

    create or replace function f$getTime(
    time1 number
    )
    return nvarchar2
    as
    var_value nvarchar2(255);
    begin
     select trunc(time1/3600/24) || '天' || to_char(to_date(mod(time1,3600*24),'sssssss'),'fmhh24":"mi":"ss""') into var_value from dual;
    return var_value;
    end;
    我传过去的是两个Date类型的日期
    f$gettime((node.creationtime-o.creationtime)*3600*24)
    plius-sql报错:ORA-01858  在要求输入数字处找到非数字字符
      

  4.   

    create or replace function f$getTime(
    time1 number
    )
    return nvarchar2
    as
    var_value nvarchar2(255);
    begin
     select trunc(time1/3600/24) || '天' || to_char(to_date(mod(time1,3600*24),'sssssss'),'fmhh24":"mi":"ss""') into var_value from dual;
    return var_value;
    end;
    我传过去的是两个Date类型的日期
    f$gettime((node.creationtime-o.creationtime)*3600*24)
    plius-sql报错:ORA-01858 在要求输入数字处找到非数字字符
      

  5.   


    create or replace function f$getTime(
    time1 number
    )
    return nvarchar2
    as
    var_value nvarchar2(255);
    begin
     select trunc(time1/3600/24) || '天' || to_char(to_date(mod(time1,3600*24),'sssssss'),'fmhh24":"mi":"ss""') into var_value from dual;
    return var_value;
    end;
    我传过去的是两个Date类型的日期
    f$gettime((node.creationtime-o.creationtime)*3600*24)
    plius-sql报错:ORA-01858 在要求输入数字处找到非数字字符
      

  6.   

    1:你传入的值我不知道是什么含义,但是函数中没有用到你传入的参数
    2:本机测试是可以通过的,执行的结果就是函数的select结果select fgetTime((to_date('01-01-2090', 'dd-mm-yyyy') -
                    to_date('01-01-2000', 'dd-mm-yyyy')) * 3600 * 24)
      from dual本机测试结果为:0天4:26:0