如何检查今天的日期是否为周末,如果是,则设置为SAME月份内最接近的工作日?使用SQL。
2种情景:
如果周末是21日,那么它将被设置为20日,星期五(工作日)
如果周末是1号,那么它将被设置为星期一(工作日)的第3天
答案 0 :(得分:1)
如果您将表格架构包含在一个更具针对性的响应中,那将会很不错,但通常您要寻找的是:
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)。