Hivesql计算两个时间戳相差的分钟数

如题所述

使用Datedif(日期1,日期2,"m")函数DATEDIF是EXCEL中的函数,还有以下的使用方法一并教教:1、简要说明:返回两个日期之间的年\月\日间隔数2、基本语法:=DATEDIF(开始日期,结束日期,单位代码)3、实例1:题目:计算出生日期为1973-4-1人的年龄公式:=DATEDIF("1973-4-1",TODAY(),"Y")结果:33简要说明当单位代码为"Y"时,计算结果是两个日期间隔的年数.4、实例2:题目:计算日期为1973-4-1和当前日期的间隔月份数.公式:=DATEDIF("1973-4-1",TODAY(),"M")结果:403简要说明当单位代码为"M"时,计算结果是两个日期间隔的月份数.5、实例3:题目:计算日期为1973-4-1和当前日期的间隔天数.公式:=DATEDIF("1973-4-1",TODAY(),"D")结果:12273简要说明当单位代码为"D"时,计算结果是两个日期间隔的天数.5、实例4:题目:计算日期为1973-4-1和当前日期的不计年数的间隔天数.公式:=DATEDIF("1973-4-1",TODAY(),"YD")结果:220简要说明当单位代码为"YD"时,计算结果是两个日期间隔的天数.忽略年数差5、实例5:题目:计算日期为1973-4-1和当前日期的不计月份和年份的间隔天数.公式:=DATEDIF("1973-4-1",TODAY(),"MD")结果:6简要说明当单位代码为"MD"时,计算结果是两个日期间隔的天数.忽略年数和月份之差5、实例6:题目:计算日期为1973-4-1和当前日期的不计年份的间隔月份数.公式:=DATEDIF("1973-4-1",TODAY(),"YM")结果:7简要说明当单位代码为"YM"时,计算结果是两个日期间隔的月份数.不计相差年数追问

我问的是返回分钟数啊 你说了这么多 没有我想要的答案啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-06
1.Hive row_number() 函数的高级用法 row_num 按照某个字段分区显示第几条数据

select imei,ts,fuel_instant,gps_longitude,gps_latitude,row_number() over (PARTITION BY imei ORDER BY ts ASC) as row_num from sample_data_2

2.row_num 是相互连续的,join 自身,然后时间相减可求差
create table obd_20140101 as

  select a.imei,a.row_num,a.ts,COALESCE(unix_timestamp(a.ts, 'yyyy-MM-dd HH:mm:ss.S'), 0) - unix_timestamp(b.ts, 'yyyy-MM-dd HH:mm:ss.S') as intervel ,a.fuel_instant,a.gps_speed as obd_speed,a.gps_status,a.gps_longitude,a.gps_latitude,a.direct_angle,a.obdspeed from obddata_20140101 a join obddata_20140101 b on a.imei = b.imei and a.row_num = b.row_num +1
第2个回答  2017-10-26
SELECT t1.id,(t1.end_time-t2.start_time)/60 as difference_time from
(SELECT u1.id as id,u1.page as page,unix_timestamp(u1.event_time) as end_time
FROM user_behavior_sor_clear u1 WHERE u1.event='end') t1
LEFT JOIN
(SELECT u2.id as id,u2.page as page,unix_timestamp(u2.event_time) as start_time
FROM user_behavior_sor_clear u2 WHERE u2.event='start') t2
ON t1.id=t2.id and t1.page=t2.page
WHERE t1.page='register';