2016-01-13 174 views
0

我的要求是簡單的如何在蜂巢計算兩個欄之間的時間差蜂巢:如何計算時間差

TIME_START:10時15分00秒

Time_End:11:45:00

我需要做的(TIME_END-TIME_START)= 1:30:00

注意兩個列是字符串數據類型好心幫得到需要的結果..

回答

0

你需要轉換HH:MM:SS秒到秒,得到它們之間的差異,並重新安排它爲另一個HH:MM:SS時間。

+0

@williams我試過很多選項,蜂巢不是越來越容易的方法來轉換。比如我能夠從字符串轉換成時間,但沒能找到差異也顯示從下面查詢SUBSTR(FROM_UNIXTIME(UNIX_TIMESTAMP(TIME_END, 'HH:MM:SS')),12)空 - SUBSTR(FROM_UNIXTIME(UNIX_TIMESTAMP( TIME_START, 'HH:MM:SS')),12)我希望你應該在蜂巢percpective – Elavarasan

+0

看看這個[答案]參見(http://stackoverflow.com/a/4927884/4038957)。 –

+0

是的,但同樣是從蜂巢的角度來問。如果我寫的Java單獨獲得這個時間差,我的代碼會去過多複雜.... – Elavarasan

2

Language manual包含了所有可用的日期時間函數描述。以秒爲單位的差值可以用這種方式計算:hour(time_end) * 3600 + minute(time_end) * 60 + second(time_end) - hour(time_start) * 3600 - minute(time_start) * 60 - second(time_start)。你可以用from_unixtime(..., 'HH:mm:ss')來包裝它以得到格式化的時間差異。

它可能會更好write a UDF而不是把所有這一切到你的查詢。

+0

謝謝你這麼多!這個轉換邏輯符合我的要求,並且你節省了我的時間:) +1 – Elavarasan