当然不想这么做也可以,将输入的日期转换为字符,然后将后面的日期部分替换成01,然后再用dayname也可以。
date_add求日期坐在月份的第一天
date_add('写入日期',interval -day('写入日期')+1 day),然后再套一层dayname函数就可以了。
-- by sleest 2018/01/19 以周一作为一周开始-- 假设条件日期为2018-01-19, 以下列举取上周始末和周几
select date_add(20180119, interval -7 - weekday(20180119) day) as last_week_start,
date_add(20180119, interval -1 - weekday(20180119) day) as last_week_end,
date_add(20180119, interval -8 - weekday(20180119) + 1 day) as last_week_monday,
date_add(20180119, interval -8 - weekday(20180119) + 2 day) as last_week_tuesday,
-- ...
date_add(20180119, interval -8 - weekday(20180119) + 7 day) as last_week_sunday
-- 取上周所有, 如果creationDate时间部分为00:00:00.0 可以直接小于等于上述last_week_end
select 1
from student
where creationDate >= date_add(20180119, interval -7 - weekday(20180119) day)
and creationDate < date_add(20180119, interval - weekday(20180119) day)
-- 取上周二, 如果creationDate时间部分为00:00:00.0 可以直接用一个等于条件
select 1
from student
where creationDate >= date_add(20180119, interval -8 - weekday(20180119) + 2 day)
and creationDate < date_add(20180119, interval -8 - weekday(20180119) + 3 day)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)