select substr(regexp_replace(cast(date_sub(‘2022-11-17’,2) as string),’-‘,’’),1,8)
from dwd.dwd_xxx where day=20221117
mysql中有直接可用的函数date_sub(curdate(),interval 2 day),但是在impala中,只有date_sub(),没有curdate()。而且date_sub()出来的结果是时间戳。
暂时采用的做法为:substr( regexp_replace(cast(date_sub(now(),2) as string),’-‘,’’),1,8)。
用了很多函数,date_sub(now(),2) 取到前两天,cast()转换成string,regexp_replace()将时间戳中的‘-’去掉,最后取到日期的前8为,即为‘20200928’。
同理,如果想取后两天,将datesub()函数替换成date_add()即可。