念念不忘
必有回响🎉

Hive计算两个日期的差值

目前的需求是需要通过计算两个时间字段的差值的大小来确定数据是否符合规范,目前的时间字段存储的结构为:yyyy-MM-dd HH-mm-ss的形式,例如:2018-09-11 10:18:01。对于Hive来说,这种形式的时间格式可以直接使用,而无需转换。

要计算差值,可以使用Hive自带的函数unix_timestamp,将其转换为时间戳,然后再进行相减即可。对于要求的差值是秒、分钟还是小时来说,只需要除以对应的单位即可。例如:

SELECT
	filed1,
	filed2,
	filed3,
	filed4,
	filed5,
	filed6 
FROM
	tableName 
WHERE
	( unix_timestamp( '2018-09-11 10:18:01' ) - unix_timestamp( '2018-09-11 10:03:01' ) ) / 60 >= 15 
	LIMIT 1;

当然,Hive还有一个函数datediff()也可以计算两个日期的差值,例如:

hive> SELECT datediff('2018-9-11', '2018-8-11') FROM tableName LIMIT 1;
OK
31
Time taken: 0.019 seconds, Fetched: 1 row(s)

该函数只能计算天为单位的时间差。

赞(1) 打赏
未经允许不得转载:Charles's Blog » Hive计算两个日期的差值

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏