如题!
select Datediff(y ,recep_time,Getdate()) from vars1  这样读出来的无非就是
单独的 日期 (如:天。月。小时阿 ) 只能得到单独的时间
我想得到一个连贯的时间 如(滞留时间  = 当前时间- 申请时间)
  公文标题    滞留时间          提交人 
  出差申请   10天11小时23分钟   admin 
  出差申请   16天22小时35分钟   admin     
  出差申请   16天22小时51分钟   admin 
我想出来这样的效果!!!    

解决方案 »

  1.   

    select cast(Datediff(day,recep_time,Getdate()) as varchar(20)+'天'+cast(Datediff(hour,recep_time,Getdate()) as varchar(20)+'小时'+cast(Datediff(minute,recep_time,Getdate()) as varchar(20)+'分钟' from vars1
      

  2.   

    呵呵!!
    select Datediff(y ,recep_time,Getdate())+Datediff(d,recep_time,Getdate())+.....
     from vars1
    试试!!
      

  3.   

    declare @t datetime
    set @t='2006-10-10'
    select  convert(varchar(04),datediff(day,@t,getdate()))+'日'+convert(varchar(04),datediff(hour,@t,getdate())%24)+'小時'+convert(varchar(04),datediff(minute,@t,getdate())%60)+'分鐘'----------------------
    45日15小時54分鐘
      

  4.   

    直接 datediff(day 不对吧,当时间部分晚于现在时间时结果就错了,例如:select cast(Datediff(day ,'2006-10-10 17:00',Getdate()) as varchar) + '天' +
           cast(Datediff(hour ,'2006-10-10 17:00',Getdate()) % 24 as varchar) + '小时' +
           cast(Datediff(minute ,'2006-10-10 17:00',Getdate()) %60 as varchar) + '分钟' as 滞留时间
    --45天23小时5分钟,应该是44天才对只能是用 datediff(minute 来 / 和 %------------------------------------------------------------------
    if object_id('MyDateDiff') is not null drop function MyDateDiff
    go
    create function MyDateDiff(@BeginDate datetime, @EndDate datetime)
      returns varchar(20)
    as
    begin
      declare @n int,@s varchar(20)
      set @n = datediff(minute, @BeginDate, @EndDate)
      set @s = cast(@n / 60 / 24 as varchar) + '天'
      set @n = @n % (60 * 24)
      set @s = @s + cast(@n / 60 as varchar) + '小时'
      set @s = @s + cast(@n % 60 as varchar) + '分钟'
      return @s
    end
    go
    select dbo.MyDateDiff('2006-11-01 16:00:00', getdate())
    --22天23小时50分钟
    drop function MyDateDiff
      

  5.   

    en o  恩哦. . 现在又有一个问题哦。。我怎么才能把它和我以前的语句UNION一起弄起来啊
      

  6.   

    Select Distinct work_styleid,work_tablename,porxy_man,blac_id,proxy_endtime ,proxy_starttime ,push,task_name,proxy_id,curtaskid,task_index,table_id,role_id,isdeal,id,work_id,archives_id,work_name ,prears_man,curars_man,recep_time ,ars_owner  From vars1 Where  (((curars_man = 'admin' and (proxy_id='' or (proxy_starttime >=getdate() or proxy_endtime <=getdate())) and blac_id='C620346Z9VSY1SZ1CB7') or (proxy_id='KsUserC620346Z9VSY1SZ1CB7' and proxy_starttime <=getdate() and proxy_endtime >=getdate())) or (archives_id =(SELECT DISTINCT arsid   FROM thead   WHERE isdeal = 0 AND arsid = vars1.archives_id AND  task_id = vars1.curtaskid AND role_key='KsUserC620346Z9VSY1SZ1CB7') and (blac_id='C620346Z9VSY1SZ1CB7' and (proxy_id='' or (proxy_starttime >=getdate() or proxy_endtime <=getdate())) or (proxy_id='KsUserC620346Z9VSY1SZ1CB7' and proxy_starttime <=getdate() and proxy_endtime >=getdate() ))))  order by recep_time desc这个我以前的 SQL语句。现在想把才大家们帮我搞得SQL语句连成 一个大的SQL语句阿 union
    这个语句来 连哦。。  。小弟  语句不行2哦   请大家们 帮哈哦Select Distinct work_styleid,work_tablename,porxy_man,blac_id,proxy_endtime ,proxy_starttime ,push,task_name,proxy_id,curtaskid,task_index,table_id,role_id,isdeal,id,work_id,archives_id,work_name ,prears_man,curars_man,recep_time ,ars_owner  From vars1 Where  (((curars_man = 'admin' and (proxy_id='' or (proxy_starttime >=getdate() or proxy_endtime <=getdate())) and blac_id='C620346Z9VSY1SZ1CB7') or (proxy_id='KsUserC620346Z9VSY1SZ1CB7' and proxy_starttime <=getdate() and proxy_endtime >=getdate())) or (archives_id =(SELECT DISTINCT arsid   FROM thead   WHERE isdeal = 0 AND arsid = vars1.archives_id AND  task_id = vars1.curtaskid AND role_key='KsUserC620346Z9VSY1SZ1CB7') and (blac_id='C620346Z9VSY1SZ1CB7' and (proxy_id='' or (proxy_starttime >=getdate() or proxy_endtime <=getdate())) or (proxy_id='KsUserC620346Z9VSY1SZ1CB7' and proxy_starttime <=getdate() and proxy_endtime >=getdate() ))))  order by recep_time desc   union (select cast(Datediff(day ,recep_time,Getdate()) as varchar) + '天' +
           cast(Datediff(hour ,recep_time,Getdate()) % 24 as varchar) + '小时' +
           cast(Datediff(minute ,recep_time,Getdate()) % 60 as varchar) + '分钟' as 滞留时间 from vars1)
       好像有问题哦。。 应该怎么连哦。 。。  SQL高手们····快帮哈沃阿
      

  7.   

    看的有点晕,写个示例LZ自己去改自己的
    select Col1, Col2, Col3, Col4, Col5
    ......
    union
    select null, BCol1, BCol2, null, null   --union连接的select必须具有相同数目的字段,如果没有就用常量填,通常是空-null
    ......