SELECT DATE_TRUNC('day', trade_date + INTERVAL '1 DAY') from trade_table;
我的日期都是星期一到星期五,但当我date_trunc的日期是星期六(例如平日加1),它是四舍五入到星期六。我想把它四舍五入到下星期一,而不是星期六。我怎么能这么做?
发布于 2016-10-07 08:17:52
如果我理解正确,你想添加一天,如果结果是星期六或周日,再加上2或1天,所以结果是下一个工作日。然后提取一周中的第一天(dow
)并使用CASE
表达式,就可以了:
select date_trunc('day',
trade_date + ( case extract(dow from trade_date)
when 5 THEN 3 -- when Friday, add 3
when 6 THEN 2 -- when Saturday, add 2
else 1 -- any other day, add 1
end
) * interval '1 day' )
from trade_table ;
https://dba.stackexchange.com/questions/151639
复制相似问题