我需要编写一个where子句来选择一年中某个星期的星期一到星期五之间的所有记录。CURDATE()不起作用,因为我没有处理当前日期,只使用周数字作为参考。
我试图实现的内容如下所示:
WHERE appointment.appointment_date >= DATE(Monday of YEARWEEK(30)) and appointment.appointment_date <= DATE(Friday of YEARWEEK(30))发布于 2016-03-16 17:04:35
你可以通过使用DAYOFWEEK来实现。您可以获得不是星期天或星期六的所有日期。
SELECT.... FROM appointment
WHERE DAYOFWEEK(appointment.appointment_date) <> 1
OR DAYOFWEEK(appointment.appointment_date) <> 7;发布于 2016-03-16 16:58:22
下面给出了从星期一到星期五星期几的所有日期。
WHERE DAYOFWEEK(appointment.appointment_date) >= 2 AND DAYOFWEEK(appointment.appointment_date) <= 7DAYOFWEEK在1=星期天开始
因此,请使用上述方法和this SO post的公认答案。
附注:日期很难正确处理,您使用的是哪种日历系统?英国/美国/ ISO?今年是闰年吗?等等等等
发布于 2016-03-16 17:23:17
WHERE DATE_FORMAT(appointment.appointment_date, '%w') in (1,2,3,4,5) and ATE_FORMAT(appointment.appointment_date, '%Y') = YEAR(CURDATE())听到:1=星期一,2=星期二,3=星期三,4=星期四,5=星期五
https://stackoverflow.com/questions/36030645
复制相似问题