hive 和 presto之间有的函数使用不一样,这里获取当前时间来做简单描写。
我们的需求是:求当前时间与固定时间字段的日期差值。
在hive,可以直接使用datediff来计算两个日期之间的差值,可以直接这样写
select datediff(from_unixtime(unix_timestamp()), a.crt_time) diff_date
from a
from_unixtime(unix_timestamp() ) 即获取当前时间 并且将时间格式化为 年-月-日 时:分:秒的形式。
在presto中可以使用这样写
select date_diff('day',cast(a.crt_time as timestamp),cast(now() as timestamp)) diff_date
from a
date_diff可以用来求小时或者是天的时间间隔,如果要求小时就将day换为hour即可
cast(expression as data_type),expression 字段 ,expression 数据类型。