自定义函数:
create function getYearDiff(@sdate varchar(20),@edate varchar(20))
returns int
begin
   declare @r int
   set @r=
datediff(yy,convert(datetime,replace(replace(replace(@sdate,'年','-'),'月','-'),'日','')),
convert(datetime,replace(replace(replace(@edate,'年','-'),'月','-'),'日','')))
return @r
end执行语句:select dbo.getYearDiff('2009年01月1日','2011年01月4日') from S_prjLicenseChild
得到值是:整数
在页面上语句:String sSql= "select id,dbo.getYearDiff('2009年01月1日','2011年01月4日') from S_prjLicenseChild";
可是得到的值是:select id,dbo.getYearDiff('2009年01月1日','2011年01月4日') from S_prjLicenseChild 
我想要的结果是数据里的那个执行结果。。整数。。怎么写啊。
 

解决方案 »

  1.   

    exect "select id,dbo.getYearDiff('2009年01月1日','2011年01月4日') from S_prjLicenseChild";
      

  2.   

    String sql= "select id,dbo.getYearDiff('2009年01月1日','2011年01月4日') from S_prjLicenseChild";
    这样写是对的吧。。可是得到的还是'2009年01月1日','2011年01月4日'。还不是整数哎!怎么搞啊!
      

  3.   

    什么整数??
    replace(replace(replace(col,'年',''),'月',''),'日','')
      

  4.   

    create function getYearDiff(@sdate varchar(20),@edate varchar(20))
    returns int
    begin
    declare @r int
    select @r=
    datediff(yy,convert(datetime,replace(replace(replace(@sdate,'年','-'),'月','-'),'日','')),
    convert(datetime,replace(replace(replace(@edate,'年','-'),'月','-'),'日','')))
    return @r
    end
      

  5.   

    我的意思是在页面上怎么调用这个函数。。页面上的写法:String sql= "select id,dbo.getYearDiff('2009年01月1日','2011年01月4日') from S_prjLicenseChild";
    out.println(sql);
    这样写是对的吧。。可是得到的还是'2009年01月1日','2011年01月4日'。还不是整数哎!怎么搞啊!
    我想得到的是这个函数的计算结果!