2017-03-03 7 views
1

現在、セッションID(行)ごとに2つのタイムスタンプ(YYYY-MM-DD HH:MM:SS)の差を計算しています。私がその情報を得ることができれば、私は日付表に参加し、時間を平均して特定の数を得る。 例4.5の数値を00:04:30(4分30秒)に変換する方法を探しています。
日付機能を含めたくないため、このコードでは 'YYYY-MM-DD'形式を除外します。ここで数値をhiveqlの時刻に変換する

は、私が使用していた論理である:

select t_date_dim.greg_dt, 
    avg(Big.Session_Length) as Session_Length 
from (
    select unix_timestamp(Big.MaximumTimestamp) - unix_timestamp(Big.MinimumTimestamp) as Session_Length 
    from Big 
    ) 
inner join t_date_dim on big.dt = t_date_dim.greg_dt 
+0

P.クエリが無効です。 –

+0

私は質問を厳密に私の問題の基礎を得るために削減しようとしました。私は私の命名規則が間違っていることに気づいた。謝罪いたします。 – MParisian

答えて

0
hive> with t as (select 1234 as session_length) -- in seconds 
     select printf("%02d:%02d", session_length div 60,session_length % 60) 
     from t 
     ; 
OK 
_c0 
20:34 

+0

私は前にHiveで "printf"関数を見たことがありません。それは何ですか?それはどのように機能しますか? – MParisian

+0

@MParisian - 私の答えに追加リンクを表示 –

+0

答えを受け入れるための親切な思い出 –

関連する問題