MySQL查询中的逻辑跳过天

时间:2012-07-28 04:41:13

标签: mysql sql database-design

我有一个网站,人们可以去预约医生。在医生预约的前一天,服务台给患者打电话,确保他们在预约当天就诊。

现在我在管理员中制作了一个屏幕,显示明天有人预约的人。如果明天是周六的星期日,它应该显示星期一有固定预约的人,因为诊所将在周日关闭。

我做了一个查询,带来了明天预约的人员名单。现在应该添加到这个查询中,以便明天获得星期一的人员名单是星期日。

CREATE TABLE Patients_Appointment_List(
  Patent_Id INT  UNSIGNED PRIMARY AUTO_INCREMENT,
  Patient_Name VARCHAR(255),
  appointment_Date DATE  
);

我应该添加到以下查询以跳过星期日并从星期一开始再次

SELECT Patient_Name
  FROM Patients_Appointment_List
 WHERE appointment_Date BETWEEN now() and date_add(now(), INTERVAL 1 DAY)  

1 个答案:

答案 0 :(得分:1)

您可以在CASE子句中使用条件WHERE表达式来检查明天是否是星期日。如果是,请调整条件检查以包含下一个两个天,否则,只显示约会直到明天:

SELECT Patient_Name
FROM   Patients_Appointment_List
WHERE 
    CASE WHEN WEEKDAY(CURDATE() + INTERVAL 1 DAY) = 6 THEN 
         appointment_Date BETWEEN NOW() AND NOW() + INTERVAL 2 DAY ELSE
         appointment_Date BETWEEN NOW() AND NOW() + INTERVAL 1 DAY
    END