DATEDIFF(hour,'2009-07-28 14:33:08.887',GETDATE())
DATEDIFF(day,'2009-07-28 14:33:08.887',GETDATE())
--错误
declare @timetype varchar(10)
set @timetype='hour' 
select DATEDIFF(@timetype,'2009-07-28 14:33:08.887',GETDATE())我想 将 datediff 中 的hour,或day 作为一个变量传进来。请大家 赐教!!

解决方案 »

  1.   

    没分吖? 给个提示,动态SQL语句
      

  2.   


    declare @timetype varchar(10) 
    declare @SQl varchar(1000) 
    set @timetype='hour' 
    Set @sql = 'select DATEDIFF('+@timetype+',''2009-07-28 14:33:08.887'',GETDATE())'
    exce(@sql) 
      

  3.   


    declare @timetype varchar(10) 
    declare @SQl varchar(1000) 
    set @timetype='hour' 
    Set @sql = 'select DATEDIFF('+@timetype+',''2009-07-28 14:33:08.887'',GETDATE())'
    exec(@sql) 
      

  4.   

    你可以寫成
    SELECT @timetype=DATEDIFF(HOUR,'2009-07-28 14:33:08.887',GETDATE()) 
      

  5.   

    动态SQL 嘛  SO EASY!
      

  6.   

    declare @timetype varchar(10),@s nvarchar(1000),@Dt bigint
    set @timetype='hour'
    set @s='select @Dt=DATEDIFF('+@timetype+',''2009-07-28 14:33:08.887'',GETDATE())'
    exec sp_executesql @s,N'@Dt bigint output',@Dt output
    select @Dt