Hadoop 如何计算蜂巢中的日期差

Hadoop 如何计算蜂巢中的日期差,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我是个新手。我有一个employee表,其中有一列指定加入日期,我想检索过去3个月内加入的员工列表。我知道我们可以使用from_unixtimeunix_时间戳获取当前日期。如何计算datediff?是否有类似MS SQL中的内置DATEDIFF函数?请指教 是datediff已实现;见: 顺便说一下,我在谷歌搜索HiveDateDiff时发现了这个,这是第一个结果 我会先试试这个 select * from employee where month(current_date)-3 = mon

我是个新手。我有一个employee表,其中有一列指定加入日期,我想检索过去3个月内加入的员工列表。我知道我们可以使用from_unixtimeunix_时间戳获取当前日期。如何计算datediff?是否有类似MS SQL中的内置DATEDIFF函数?请指教

是datediff已实现;见:

顺便说一下,我在谷歌搜索HiveDateDiff时发现了这个,这是第一个结果

我会先试试这个

select * from employee where month(current_date)-3 = month(joining_date)
例如:

SELECT datediff(to_date('2019-08-03'), to_date('2019-08-01')) <= 2;

如果您需要以秒为单位的差异,即:您将日期与时间戳进行比较,而不是整天,则可以简单地将两个日期或时间戳字符串转换为“yyy-MM-DD HH:MM:SS”格式,或者使用unix_时间戳显式指定字符串日期格式,然后将它们相互减去以秒为单位的差异。然后可以除以60.0得到分钟,或者除以3600.0得到小时,等等

例如:

UNIX_时间戳'2017-12-05 10:01:30'-UNIX_时间戳'2017-12-05 10:00:00'作为时间差-这将返回90秒。Unix_时间戳将字符串日期转换为bigint。
更多关于如何使用unix\u时间戳的信息,包括如何转换具有不同日期格式的字符串:

感谢您的回复。在语言手册中,它指定datediff函数计算字符串类型之间的差异。它也适用于时间戳类型吗?我不知道,我从来没有使用过时间戳类型,我总是使用字符串作为时间戳列。如果它不起作用,只需将时间戳列强制转换为字符串,或者首先将其保留为字符串。DATEDIFF只接受字符串/时间戳/日期可写类型,我建议只使用以下格式:YYYY-MM-dd对于不到3个月前加入的人如何?那些在1月至3月加入的人呢?如果今天是5月,他希望那些在4月、3月和2月加入的人,同样在6月,也将是5月、4月和3月,以当前日期=2015-01-01和加入日期=2014-12-01运行查询,结果会是什么?如果列已经是“yyyy-mm-dd”格式,则没有必要使用“to-date”。
SELECT datediff(to_date('2019-08-03'), to_date('2019-08-01')) <= 2;