【发布时间】:2014-06-07 08:48:51
【问题描述】:
我需要得到前一个工作日。所以当它是星期一时,我需要在星期五得到结果,但我似乎无法理解 WEEKDAY() 函数。有人可以帮忙开始吗?
【问题讨论】:
-
数据库层真的需要这个功能吗?
-
不,我真的不认为这是最简单的。
我需要得到前一个工作日。所以当它是星期一时,我需要在星期五得到结果,但我似乎无法理解 WEEKDAY() 函数。有人可以帮忙开始吗?
【问题讨论】:
WEEKDAY() 根据星期几返回 0 到 6。您可以在代码中添加逻辑以忽略周末条件,然后返回星期五。
返回日期的工作日索引(0 = 星期一,1 = 星期二,... 6 = 星期日)。
所以如果WEEKDAY(date) - 1 == 5 || WEEKDAY(date) - 1 == 6 则改为等于 4(星期五)。
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_weekday
【讨论】:
尝试关注
select date_add(curdate(), interval
case weekday(curdate())
when 0 then 5
when 6 then -2
else -1
end
day);
【讨论】: