Обратите внимание, что ваши значения "diff (часы)" фактически представляют дни, а не часы.
Teradata не предоставляет встроенную функцию разности временных меток, но вы можете рассчитать, извлекая части и выполняя простую математику:
select col1, col2,
cast((cast(col1 as date) - cast(col2 as date)) as float)
+cast((extract(hour from col1) - extract(hour from col2)) as float)/24
+cast((extract(minute from col1) - extract(minute from col2)) as float)/24/60
+cast((extract(second from col1) - extract(second from col2)) as float)/24/60/60
as diff_days
from myTable;
Вы можете поместить вычисление в UDF SQL, если вам нужно использовать его в нескольких местах.