如何使用Hive在几分钟内获得日期差异 [英] How to get date difference in minutes using Hive

查看:134
本文介绍了如何使用Hive在几分钟内获得日期差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面的查询是我的sql server查询,我希望它将它转换为hive查询:

  select DATEDIFF([minute ],'19000101','2013-01-01 10:10:10')


解决方案

您可以使用 <$ c $对于 1970 之后的日期:

  unix_timestamp   SELECT 
(unix_timestamp('2013-01-01 10:10:10') - unix_timestamp('1970-01-01 00:00:00'))/ 60




  1. 将这两个日期转换为 1970-01-01

  2. 对它们进行抽象分析

  3. 除以60得到分钟数

SqlFiddleDemoUsingMySQL



编辑:



添加最小值utes:将日期更改为unixtime - >添加var * 60sec - >转换回日期

  SELECT from_unixtime(unix_timestamp('2013-01-01 10:10: 10')+ 10 * 60)结果

SqlFiddleDemoUsingMySQL2

Below query is my sql server query and I want it to convert it into hive query:

select DATEDIFF([minute], '19000101', '2013-01-01 10:10:10')

解决方案

You could use unix_timestamp for dates after 1970:

SELECT 
  (unix_timestamp('2013-01-01 10:10:10') - unix_timestamp('1970-01-01 00:00:00'))/60 

  1. Convert both dates to seconds from 1970-01-01
  2. Substract them
  3. Divide by 60 to get minutes

SqlFiddleDemoUsingMySQL

EDIT:

Adding Minutes: change date to unixtime -> add var * 60sec -> convert back to date

SELECT from_unixtime(unix_timestamp('2013-01-01 10:10:10') + 10 * 60) AS result

SqlFiddleDemoUsingMySQL2

这篇关于如何使用Hive在几分钟内获得日期差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆