如何检查今天的日期是否是周末,如果是,则设置为同月内最近的工作日?使用 SQL。
2 种场景:
-
如果周末是 21 日,那么它将设置为 20 日,星期五(工作日)
-
如果周末是 1 日,那么它将设置为 3 日,星期一(工作日)
如果您包含表架构以进行更量身定制的响应,那就太好了,但通常您要查找的是:
select d, case when dayofweek(d) in (1,7) then 'weekend' else 'weekday' end as 'day type',
if(dayofweek(d) in (1,7),
if(day(d) = 1 and dayofweek(d) = 1,
d + interval 1 day,
if(day(d) = 1 and dayofweek(d) = 7,
d + interval 2 day,
if(dayofweek(d) = 1,
d + interval 1 day,
d - interval 1 day
)
)
), d
) nearest_week_day
from test;
这是一个演示
可能有更好的方法可以做到这一点 - 但这有效。您可能需要稍微扩展查询以处理该月最后一天的星期日(工作日 = 1)。