1

我有一个网站,人们可以在那里预约医生。在医生预约的前一天,服务台会打电话给病人,以确保他们在预约当天在场。

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

我做了一个查询,它带来了明天有约会的人员列表。现在我应该在这个查询中添加什么以便获取星期一的人员列表,以防明天是星期天。

创建表 Patient_Appointment_List(
  Patent_Id INT UNSIGNED PRIMARY AUTO_INCREMENT,
  患者姓名 VARCHAR(255),
  约会_日期 DATE  
);

我应该在下面的查询中添加什么以跳过周日并从周一重新开始

选择患者姓名
  FROM Patient_Appointment_List
 WHERE 约会日期介于 now() 和 date_add(now(), INTERVAL 1 DAY)  
4

1 回答 1

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
于 2012-07-28T04:47:46.297 回答