Teradata SQL HHMM到HH:MM

时间:2015-09-09 01:35:46

标签: sql format teradata

在Teradata SQL上,我试图将持续时间转换为30小时30分钟,因为' 3030'到1)30:30和2)30.5。或者,在另一个例子中,3小时15分钟为1)3:10和3)3.25

我可以使用mod和其他算术运算。但是,有没有在Teradata SQL中执行此操作的默认方法?

2 个答案:

答案 0 :(得分:0)

您只需插入字符:

select substr(val, 1, 2) || ':' substr(val, 3, 2)

或者,将值转换为整数:

select cast(substr(val, 1, 2) as decimal(10, 2)) + cast(substr(val, 3, 2) as decimal(10, 2))/60.0

编辑:

如果您想将它们转换为数字,您可以执行以下操作:

select (cast(hhmm as int) / 100 + (cast(hhmm as int) mod 100) / 60.0

这将返回一个数字。

答案 1 :(得分:0)

每个间隔都有一个FORMAT

select format(interval '3:30' hour to minute)

返回

-h(1):mm

但我从来没有找到改变它的方法: - (

假设您输入的是字符串:

cast(col as int) / 100 + to_number(col) mod 100 / 60 -- numeric result

trim(cast(col as int format 'Z(8)9:99'))  -- string result