MySQL函数,检索和操作日期时间

时间:2019-04-10 10:35:46

标签: mysql

我开发了一种功能,可以检查输入的日期是否预定了给定的资源。

这通过两个表发生: ResourcesUnavailabilities

资源包含:

ID, Description, model, unavailability_id etc.

不可用包含:

id, start_date, end_date, resource_id.

我们将房子Unavailabilities保留到2019-04-202019-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);

1 个答案:

答案 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';