Я пытаюсь написать запрос Hive, который добавит 6 часов к значению метки времени, а затем сравнит его с другими метками времени.
Метод, который я использовал, - это преобразовать метку времени с помощью функции unix_timestamp()
, а затем добавить к ней 21600 секунд, чтобы окончательное значение на 6 часов опережало исходное.
hive> select unix_timestamp('2014-11-02 00:58:20') from unix_tmp limit 1;
OK
1414907900
1414907900 + 6*60*60 = 1414929500
hive> select from_unixtime(1414929500) from unix_tmp limit 1;
OK
2014-11-02 05:58:20
Я думаю, что значение часа должно быть 06
, а не 05
. Что я делаю неправильно?
Кроме того, еще одно наблюдение заключается в том, что это верно не для всех значений; для некоторых значений приведенный выше расчет дает правильный результат.
Есть ли лучший метод для добавления часов и сравнения отметок времени?