我想计算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;
还有其他更好的方法可以在分钟或秒内获得时间间隔
答案 0 :(得分: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中的时间戳算法总是我必须要查找的东西。这不是我经常做的事情,并不像Oracle的方法那样直观。