mysql选择当前时间旁边的记录

这是一个食品服务系统……
 我有一个名为detalle_regimen_paciente的餐桌,它储存饮食,星期一供应早餐 – 星期日(星期一为1,星期日为7,智利型)
也有特定的服务时间.

+---+---------+-----------+--------------+---+
|id | name    |hora_carga |hora_servicio |day|
+---+---------+-----------+--------------+---+
|1  |breakfast|08:00      |09:00         |1  |
+---+---------+-----------+--------------+---+
|2  |lunch    |10:00      |13:00         |1  |
+---+---------+-----------+--------------+---+
|3  |breakfast|08:00      |09:00         |2  |
+---+---------+-----------+--------------+---+
|2  |lunch    |10:00      |13:00         |2  |
+---+---------+-----------+--------------+---+

所以我在查询中苦苦挣扎了大约两天(数据库中的数据比这更多……有些n:m关系就是这个消费表,从中我可以获得一名员工的总消费量)我发现问题是我找不到一种方法来选择使用当前日期和当前时间在08:00星期一用餐(这是记录号#1)…

因此,在07:58的星期一它应该只返回id为1的记录,因为它是下一餐的服务,也是下一餐的费用.

+---+---------+-------------+---+
|1  |breakfast|08:00        |1  |
+---+---------+-------------+---+

这里是sql到目前为止,但它似乎只是过滤当天…

select detalle_regimen_paciente.hora_carga
from
detalle_regimen_paciente
where
detalle_regimen_paciente.hora_servicio > CURTIME() AND
detalle_regimen_paciente.hora_carga > CURTIME()
AND
detalle_regimen_paciente.dia = (select DAYOFWEEK(CURDATE())-1)

也许我只是错误或错过时间功能.

请帮帮忙.

thx提前.

解决方法:

SELECT 
    *                          --- select the columns you need (hora_carga ?)
FROM
  ( SELECT *  
    FROM detalle_regimen_paciente   
    WHERE  hora_servicio > CURTIME()     
         AND
           dia = DAYOFWEEK(CURDATE())-1
       OR 
         dia > DAYOFWEEK(CURDATE())-1
    ORDER BY dia, hora_servicio
      LIMIT 1
  ) AS a
UNION ALL
SELECT *
FROM
  ( SELECT *     
    FROM detalle_regimen_paciente   
    ORDER BY dia, hora_servicio
      LIMIT 1
  ) AS b
ORDER BY dia DESC, hora_servicio DESC
  LIMIT 1
; 
上一篇:Cron详解


下一篇:js eslint语法规范错误提示代码