Отображение названия дня предыдущей даты в Hive Query? - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь отобразить день предыдущей даты.Пожалуйста, смотрите ниже.Я могу сделать это для текущей даты, но не могу использовать функцию date_sub, чтобы получить день, отображаемый 3 дня назад.

select from_unixtime(unix_timestamp(current_timestamp),'EEEE');
+-----------+--+
|    _c0    |
+-----------+--+
| Thursday  |
+-----------+--+

select from_unixtime(unix_timestamp(date_sub(current_timestamp,3)),'EEEE');
+-------+--+
|  _c0  |
+-------+--+
| NULL  |
+-------+--+

Есть ли другой способ добиться этого?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Попробуйте это:

select date_format(date_add(to_date(CURRENT_TIMESTAMP()), -3), 'EEEE');

Вы можете изменить «3» на количество дней, на которые вы хотели бы вернуться. Старайтесь избегать использования 'unix_timestamp', поскольку эта функция устарела.

0 голосов
/ 15 ноября 2018

Вычтите количество секунд * num days из unix_timestamp и затем используйте преобразование.

from_unixtime(unix_timestamp(current_date) - 3*86400,'EEEE')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...