我想通过以下的自定义函数,实现输入年份数字,可以找到相关记录
我定义了两个参数@injobtime,@todayyear
但不知@todayyear这个参数怎么写?才可以得出''引号里面的结果??
create function dbo.GetHoliday1(@injobtime datetime,@todayyear datetime)
returns int
as
begin
if (@injobtime >='2007-01-01') return 0 //第4行
if ((@injobtime <'2007-01-01')and (@injobtime>'2003-01-01')) return 5
if ((@injobtime <'2003-01-01')and (@injobtime>'1998-01-01')) return 7
return 10
end
===========================================
如果我的@todayyear参数是2008 那么if (@injobtime >='2007-01-01') return 0
中的'2007-01-01'用@todayyear怎么写如果我的@todayyear参数是2008 
那么if ((@injobtime <'2007-01-01')and (@injobtime>'2003-01-01')) return 5
中的'2007-01-01'用@todayyear怎么写如果我的@todayyear参数是2008 
那么if ((@injobtime <'2003-01-01')and (@injobtime>'1998-01-01')) return 7 
用@todayyear怎么写最终想执行的语句为下:
select *,dbo.getholiday1(finjobtime,2008)'年休假天数' from employee order by finjobtimeselect *,dbo.getholiday1(finjobtime,2009)'年休假天数' from employee order by finjobtime...........

解决方案 »

  1.   

    create function dbo.GetHoliday1(@injobtime datetime,@todayyear datetime) 
    returns int 
    as 
    begin 
    if datediff(mi,@injobtime ,@todayyear)<=0 return 0 //第4行 
    end 
      

  2.   

    理解错了我的意思,我的意思是如果传递@todaytime的参数是2008
    那么函数里面的值怎么写都可以得到函数引号的内容??
      

  3.   

    晕,CSDN真不爽,刚才看是零回复  ,我以为老帖了,呵呵,楼主莫怪
      

  4.   

    是这个意思create function dbo.GetHoliday1(@injobtime datetime,@todayyear varchar(4))  
    returns int  
    as  
    begin  
    if datediff(mi,@injobtime ,@todayyear+'-01-01') <=0 return 0 //第4行  
    end