case from_unixtime(unix_timestamp(event_date,'yyyyMMdd'),'u')
when 1 then regexp_replace(date_sub(from_unixtime(unix_timestamp(event_dt,'yyyymmdd' )),20),'-','')
when 2 then regexp_replace(date_sub(from_unixtime(unix_timestamp(event_dt,'yyyymmdd' )),20),'-','')
when 3 then regexp_replace(date_sub(from_unixtime(unix_timestamp(event_dt,'yyyymmdd' )),20),'-','')
when 4 then regexp_replace(date_sub(from_unixtime(unix_timestamp(event_dt,'yyyymmdd' )),20),'-','')
when 5 then regexp_replace(date_sub(from_unixtime(unix_timestamp(event_dt,'yyyymmdd' )),18),'-','')
when 6 then regexp_replace(date_sub(from_unixtime(unix_timestamp(event_dt,'yyyymmdd' )),18),'-','')
when 7 then regexp_replace(date_sub(from_unixtime(unix_timestamp(event_dt,'yyyymmdd' )),19),'-','')
end as new_date
1条答案
按热度按时间zengzsys1#
假设根据您的示例,您实际上指的是前14个工作日,并且您忽略了假日,那么它只是一个date\u子函数,包含一周中某一天的case语句。
假设星期一和星期一一样,如果星期五和星期五一样,则使用19、20。
如果您需要考虑假期,那么您需要创建一个包含每天的日历表,并注意哪些天是假期,然后它是表的一个联接,如果是这样的话,还可以找到更多的逻辑。