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 に答える