昨天在impala上处理时间格式时遇上的一个小问题,需要取当前时间的前两天,得到类似于“20200928”的string。
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()即可。