我正在尝试显示上一个日期的日期。请看下面。我可以针对当前日期执行此操作,但是无法使用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 |
+-------+--+
还有另一种方法可以实现这一目标吗?
答案 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')