weekday()函数

mysql中weekday(date)可以返回对应日期的工作日索引,0便是周一,1表示周二,......,6表示周日。

1
2
3
4
5
6
7
8
mysql> SELECT WEEKDAY('2017-12-15');
+-----------------------+
| WEEKDAY('2017-12-15') |
+-----------------------+
| 4 |
+-----------------------+
1 row in set (0.00 sec)
也可以是'2017-12-15 13:00:00'的日期时间格式
1
2
3
4
5
6
select 
(case when weekday(date)<5 then 'yes'
when weekday(date)>=5 then 'no'
else end) as ifworkday
from table
yes就是周-到周五的,no就是周六到周日

date_format()函数

1
2
3
语法
DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
1
2
3
select date_fromat(datetime,'%H:%M:%s') 
from table
可以得到小时:分钟:秒

通过case when标记区分工作日或者非工作日

如果是日期时间格式,需要筛选工作时间,如周一到周五上午九点到下午六点

1
2
3
4
select
(case when weekday(datetime)<5 and date_fromat(datetime,'%H:%M:%s') between '09:00:00' and '18:00:00') then yes
else 'no'
end) as ifworkday_time