我有一个hive表如下:
incident_id string
incident_time timestamp
call_id string
call_time timestamp
我最初使用
从字符串转换了时间戳值cast(from_unixtime(unix_timestamp(incident_time, 'yyyy-MM-dd hh:mm:ss')) as timestamp) as incident_time
我做了一个快速选择*他们看起来都很好。我正在尝试查找哪些记录在call_time之前1小时之间到48小时之后有一个incident_time。我的疑问是:
select * from mydb.mytable where
(incident_time >= call_time-3600) and
(incident_time <= call_time+172800);
抛出错误失败,异常java.io.IOException:java.lang.RuntimeException:Hive 2内部错误:类型不支持的转换:interval_day_time
答案 0 :(得分:0)
我通过使用hive中的datediff函数解决了这个问题。
select distinct *
from
mydb.mytable
where
datediff(incident_time, call_time) <= 1;
找到答案