在Teradata SQL上,我试图将持续时间转换为30小时30分钟,因为' 3030'到1)30:30和2)30.5。或者,在另一个例子中,3小时15分钟为1)3:10和3)3.25
我可以使用mod和其他算术运算。但是,有没有在Teradata SQL中执行此操作的默认方法?
答案 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