工作中需要求得二個時間的差別,

 方法1

 

  1. declare @starttime varchar(8000) 
  2.  
  3. set @starttime=  Cast(datediff(second,'2010-06-25 11:59:30','2010-06-27 12:58:00'as int
  4.  
  5.   
  6.  
  7. select '2010-06-25 11:59:30 与2010-06-27 12:58:00 的时间间隔是:' 
  8.  
  9.  
  10. cast
  11.  
  12. (@starttime-(@starttime%3600))/(3600*24) 
  13.  
  14.  as varchar)+'天'
  15.  
  16. cast
  17.  
  18. (@starttime-(@starttime%3600))/(3600) -((@starttime-(@starttime%3600))/(3600*24)*24) 
  19.  
  20. as varchar) +'小时'
  21.  
  22. cast 
  23.  
  24.  
  25. (@starttime-(@starttime%60))/60 -((@starttime-(@starttime%3600))/60) 
  26.  
  27. as varchar 
  28.  
  29.  
  30. +'分钟'+cast((@starttime%60) as varchar)+'秒' as 时间差 

方法2,如果要求不是很精確的話,用上一個方法太麻煩,可以直接一點。此方法測試可以對得對應的相關小時,或天數。但是只能取一個類型。

  

  1.  declare @a datetime 
  2.  declare @b datetime 
  3. declare @c datetime 
  4.  
  5.  set @a=convert(datetime,getdate(),121) 
  6. set @b= convert(datetime,(SELECT lasteditdt FROM  mfworkorder where workorderno='6A0000141974' ),121) 
  7.     
  8. select @a 
  9. select @b 
  10. select  datediff(hh,@b,@a)