Teradata将秒转换为小时

Mar*_*usP 0 sql oracle teradata

我在Teradata中将秒转换为小时有点问题。

CAST((TRUNC(seconds/3600) (FORMAT '99')) AS VARCHAR(10)) ||':'|| 
CAST((TRUNC((seconds MOD 3600)/60) (FORMAT '99')) AS VARCHAR(10)) ||':'|| 
CAST((TRUNC(seconds MOD 60) (FORMAT '99')) AS VARCHAR(10)) AS SecToHours 
Run Code Online (Sandbox Code Playgroud)

我需要将00:00:00格式的秒数转换为分钟和小时,但是现在如果我得到100个小时而不是100个小时,则会得到结果**我不希望格式为“ 999”。

期待的结果:

小时:分钟:秒

00:00:59

00:59:59

09:59:59

99:59:59

100:59:59

有可能吗?

dno*_*eth 5

只需使用可选数字更改格式。

这是简化版本,如果seconds不是DECIMAL,也可以删除TRUNC

(TRUNC( seconds/3600)         (FORMAT 'ZZ99')) ||
(TRUNC((seconds MOD 3600)/60) (FORMAT ':99' )) ||
(TRUNC( seconds MOD 60)       (FORMAT ':99' )) AS SecToHours 
Run Code Online (Sandbox Code Playgroud)

或使用间隔(如果少于10000小时):

seconds * INTERVAL '0000:00:01'  HOUR TO SECOND
Run Code Online (Sandbox Code Playgroud)