0

我想计算 2 个时间间隔之间的时间差,如代码所示

replace procedure database.table()               
begin  
declare v_StartTime Timestamp;  
decalre v_EndTime Timestamp;        
decalre v_TimeTaken Varchar(20);         

set v_StartTime = current_timestamp;       
/* set of queries...........          
...................                
.....................             

*/       
set v_EndTime =current_timestamp;

set v_timeTaken = v_EndTime - v_StartTime ;

/* I want the time difference in secs or mins*/

End;

有没有其他更好的方法来获得以分钟或秒为单位的时间间隔

4

1 回答 1

1

这应该以秒为单位获得您的经过时间。

set v_TimeTaken = 
   (EXTRACT(DAY    FROM (v_EndTime - v_StartTime DAY(4) TO SECOND)) * 86400)
 + (EXTRACT(HOUR   FROM (v_EndTime - v_StartTime DAY(4) TO SECOND)) * 3600)
 + (EXTRACT(MINUTE FROM (v_EndTime - v_StartTime DAY(4) TO SECOND)) * 60)
 +  EXTRACT(SECOND FROM (v_EndTime - v_StartTime DAY(4) TO SECOND)) 

Teradata 中的时间戳算术始终是我必须查找的内容。这不是我经常做的事情,它不像甲骨文的方法那样直观。

于 2012-09-27T12:55:38.977 回答