声明日期变量的PHP MyAdmin语法错误

时间:2019-12-05 10:46:06

标签: mysql sql

我似乎无法在phpMyAdmin中将DATE声明为变量。我似乎总是收到以下错误:

  

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以在'@check_in date ='2019-12-11',@check_out ='2019-12-17'附近使用正确的语法;

我的查询语法已从:

Declare @checkIn date = '2019-12-11'
    , @checkOut date = '2019-12-17'

select *
from CURRENT_BOOKINGS
where booked_from not between @checkIn and @checkOut
and booked_to not between @checkIn and @checkOut'

致...

DELIMITER $$

CREATE PROCEDURE roomAvailable()
BEGIN

DECLARE @check_in DATE;  
SET @check_in = '2019-12-11';
DECLARE @check_out DATE 
SET @check_in = '2019-12-17'

SELECT * FROM CURRENT_BOOKINGS
WHERE booked_from NOT BETWEEN @check_in AND @check_out
AND booked_to NOT BETWEEN @check_in AND @check_out

END $$

因为我经历了多次迭代以查找原因。遇到麻烦我不胜感激

1 个答案:

答案 0 :(得分:1)

请勿使用@,所有declare都必须放在开头

DELIMITER $$

CREATE PROCEDURE roomAvailable()
BEGIN

   DECLARE check_in DATE;
   DECLARE check_out DATE;
   SET check_in = '2019-12-11';
   SET check_out = '2019-12-17';

   SELECT * FROM CURRENT_BOOKINGS
   WHERE booked_from NOT BETWEEN check_in AND check_out
   AND booked_to NOT BETWEEN check_in AND check_out;

END $$

See the different types of MySQL variables