我需要在mysql中根据下表获得库的第二天时间和日期,而不需要使用过程
CREATE TABLE `library_timing` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`store_id` int(10),
`day` varchar(10) DEFAULT NULL,
`start_time` time DEFAULT NULL,
`end_time` time DEFAULT NULL,
PRIMARY KEY (`id`)
);
Insert into library_timing values(1,1,"Monday",'09:00:00','18:00:00');
Insert into library_timing values(2,1,"Tuesday",'09:00:00','18:00:00');
Insert into library_timing values(3,1,"Thrusday",'09:00:00','18:00:00');
Insert into library_timing values(4,1,"Friday",'09:00:00','18:00:00');
正如你所看到的,我有一天的时间库,所以输出预期如下
(今天是2020年6月25日星期一)
ID. Next opening Time
1 26-06-2020 09:00:00
以及(如果今天是2020年6月26日星期二,星期三是假日,那么请考虑星期四的日期时间)
ID. Next opening Time
1 28-06-2020 09:00:00
到目前为止,我已经试过这个案子,这给了我下一天的时间,但不知道如何做,如果有超过一天的差距
case
when
(curtime() < start_time or curtime() > end_time) or
(start_time = "00:00:00" and end_time = "00:00:00") or
(start_time is null and end_time is null)
then
UNIX_TIMESTAMP((
select TIMESTAMP(curdate()+1,(
select start_time
from library_timing a
where a.store_id = s.id and day = DAYNAME(CURDATE() + 1)
))
))
else 0 end nextopeningtime
1条答案
按热度按时间sxpgvts31#
我可以建议下一个解决方案:
添加列
day_of_week
对于简化计算的星期几:接下来我们可以使用下一种方法:
这种方法并不理想,可以改进