我开发了一种功能,可以检查输入的日期是否预定了给定的资源。
这通过两个表发生:
Resources
和Unavailabilities
。
资源包含:
ID, Description, model, unavailability_id etc.
不可用包含:
id, start_date, end_date, resource_id.
我们将房子Unavailabilities
保留到2019-04-20
到2019-04-21.
结束的位置
当我输入日期时,例如:start = 2019-04-20 and end = 2019-04-21
我会收到一系列结果,具体取决于是否存在保留,如果存在,我将以存在保留的日期开始不可用的开始和结束,可以操纵结束日期,从而导致mysql返回结果+ 1天?还是一周或一个月?
我尝试了函数add_date(日期,INTERVAL + DAY),但是这将间隔添加到了要进行搜索的日期中,而没有处理结果。
SELECT *
FROM lux.unavailabilities
WHERE `resource_id` = 32 AND `end_date` = ADDDATE('2019-04-21 12:00:00', INTERVAL 1 DAY);
答案 0 :(得分:0)
您已将日期添加到语句条件中,而不是语句结果中。
尝试一下,看看SELECT syntax
SELECT lux.id,
lux.start_date,
ADDDATE('2019-04-21 12:00:00', INTERVAL 1 DAY) AS NEW_END_DATE,
lux.resource_id
FROM lux
INNER JOIN unavailabilities
ON lux. unavailability_id = unavailabilities.id
WHERE unavailabilities .resource_id = 32
AND unavailabilities .end_date = '2019-04-21 12:00:00';