Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 创建一个用户定义的函数来检查两个日期之间是否有可用的汽车?_Mysql_Database_Date_Subquery_Sql Function - Fatal编程技术网

Mysql 创建一个用户定义的函数来检查两个日期之间是否有可用的汽车?

Mysql 创建一个用户定义的函数来检查两个日期之间是否有可用的汽车?,mysql,database,date,subquery,sql-function,Mysql,Database,Date,Subquery,Sql Function,我有一个名为Bookings的表,许多汽车预订都存储在CarNumber、StartDate、EndDate列中。我需要创建一个用户定义的函数来检查汽车是否可用,如果汽车可用,它应该返回1,如果不返回0 迄今为止的职能: 创建函数可用开始日期、结束日期、卡号整数 返回不确定的整数 返回 我刚刚开始学习用户定义函数,因此需要一些帮助 创建表格预订卡号INT、开始日期、结束日期 插入预订卡号、开始日期、结束日期 值6,‘2018-01-02’、‘2018-01-15’, 1, '2018-01-03

我有一个名为Bookings的表,许多汽车预订都存储在CarNumber、StartDate、EndDate列中。我需要创建一个用户定义的函数来检查汽车是否可用,如果汽车可用,它应该返回1,如果不返回0

迄今为止的职能:

创建函数可用开始日期、结束日期、卡号整数 返回不确定的整数 返回

我刚刚开始学习用户定义函数,因此需要一些帮助

创建表格预订卡号INT、开始日期、结束日期

插入预订卡号、开始日期、结束日期 值6,‘2018-01-02’、‘2018-01-15’, 1, '2018-01-03', '2018-01-05', 3, '2018-01-03', '2018-01-04', 8, '2018-01-04', '2018-01-30', 10, '2018-01-10', '2018-01-13';

您可以使用exists子查询来检查给定的日期范围是否与给定汽车的任何预订日期范围重叠

考虑以下语法:

delimiter //

create function availability(
    pStartDate datetime, 
    pEndDate datetime, 
    pCarNumber int
)
returns bool deterministic
begin
    declare res bool;
    select not exists(
        select 1 
        from bookings 
        where startDate < pEndDate and endDate > pStartDate and carNumber = pCarNumber
    ) into res;
    return res;
end;
//

目前忽略该功能,是否可以添加用于检查车辆可用性的代码,选择返回所需信息的选项,并将其放入函数中,在该函数中用变量替换日期和id号。您知道,如果不了解表结构,我们无法编写此类查询,并且在某些数据中,显然我们可以:-