显示两个日期之间的价格

时间:2016-02-12 09:36:32

标签: mysql sql mysqli

我看到很多例子如何做到这一点,但在我的情况下不起作用。我的应用程序是为renta汽车。我有两张桌子

首先是竞选季节。

季节:

ID    Start_date      End _date        Name
-------------------------------------------------------
1    2016-05-01      2016-08-31        seasonal price
2    2016-09-01      2017-04-31        non seasonal price

season_prices

    ID    Price  ID_Season     ID_Car
------  ------  ---------  -------------------
     1     150          1                1
     2     120          2                2
     3      70          1                3
     4      60          1                4

因此,当用户选择开始日期和结束日期时,会根据日期显示价格。价格根据日期具有不同的价值。

我试试

DELIMITER $$
DROP PROCEDURE IF EXISTS `calculatePrice`$$
CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    PROCEDURE `rentacar_site`.`calculatePrice`(id_car INT,startDate DATE,endDate DATE)
    /*LANGUAGE SQL
    | [NOT] DETERMINISTIC
    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    | SQL SECURITY { DEFINER | INVOKER }
    | COMMENT 'string'*/
    BEGIN
    SELECT a.name, s.name, c.price 
    FROM season_prices c
    INNER JOIN season s ON s.ID = c.ID
    INNER JOIN car a  ON a.ID = c.ID_Car
    WHERE a.ID = id_car AND startDate AND ebdDate BETWEEN s.Start_Date AND s.End_Date ;

    END$$

DELIMITER ;

我打电话的时候 CALL calculatePrice(1, '2016-01-05', '2016-08-31'); 他回答我是真的,那个赛季的名字和价格。但是当我设置CALL calculatePrice(1, '2016-10-05', '2016-20-05');所有时间返回NULL

我做错了什么?

0 个答案:

没有答案