【问题标题】:Logic in MySQL Query To Skip DaysMySQL 查询中跳过天数的逻辑
【发布时间】:2012-07-28 04:41:12
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: mysql sql database-design


    【解决方案1】:

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

    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
    

    【讨论】:

    • 我包含了一个开始日期为星期日的案例。
    • @RosePerrone 好吧,如果诊所周日不营业,那么周日应该没有预约吗?...
    猜你喜欢
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多