Redshift中用Case When基于Datetime生成max_date列的实现
Redshift中Case When生成max_date列的完整实现
针对需求,完整的SQL语句如下:
select schedule, case when extract(hour from schedule) >= 17 then schedule + interval '1 day' else date_trunc('day', schedule) + interval '23 hours 59 minutes' end as max_date from data
逻辑说明
- 当
schedule的小时数≥17时,通过schedule + interval '1 day'得到次日同一时间,用interval语法比直接加数字1更规范,避免类型歧义。 - 当小时数<17时,先用
date_trunc('day', schedule)截取schedule所在日期的零点时刻,再加上23 hours 59 minutes,精准生成当日的23:59:00。
内容的提问来源于stack exchange,提问作者nomnom3214
相关产品推荐
相关产品推荐

