1

我正在尝试显示前一个日期的日期。请看下文。我可以为当前日期执行此操作,但无法使用 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  |
+-------+--+

还有另一种方法可以实现这一目标吗?

4

2 回答 2

1

尝试这个:

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

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

于 2018-11-15T19:57:43.993 回答
0

减去秒数*天数unix_timestamp,然后使用转换。

from_unixtime(unix_timestamp(current_date) - 3*86400,'EEEE')
于 2018-11-15T15:59:30.613 回答