在Hive查询中显示上一个日期的日期名称?

时间:2018-11-15 15:57:45

标签: hadoop hive hiveql

我正在尝试显示上一个日期的日期。请看下面。我可以针对当前日期执行此操作,但是无法使用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 :(得分:1)

尝试一下:

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

您可以将“ 3”更改为您想返回的天数。 尽量避免使用“ unix_timestamp”,因为该功能已被弃用。

答案 1 :(得分:0)

unix_timestamp中减去秒数*天数,然后进行转换。

from_unixtime(unix_timestamp(current_date) - 3*86400,'EEEE')