Mysql 声明日期变量时出现PHP MyAdmin语法错误

Mysql 声明日期变量时出现PHP MyAdmin语法错误,mysql,sql,Mysql,Sql,我似乎无法在phpMyAdmin中将日期声明为变量。我似乎总是会出现以下错误: 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 CURR

我似乎无法在phpMyAdmin中将日期声明为变量。我似乎总是会出现以下错误:

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 $$
因为我已经通过多次迭代试图找到原因。当我被难倒时,感谢任何帮助

不要使用@,所有声明都必须在开始时声明

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 $$

非常感谢-我现在遇到了另一个错误:1558-mysql.proc的列计数错误。预计21人,发现20人。使用MariaDB 100128创建,现在运行100408。请使用mysql\u升级来修复此错误,这样看来我可能运行的是稍微过时的版本,因此出现了一系列全新的问题。无论如何,谢谢当您将MariaDB从10.01版升级到10.04版时,您错过了运行发行版附带的mysql_升级脚本的步骤。如果您运行它,它将修复proc表。