声明 Date 变量时出现 PHP MyAdmin 语法错误

PHP MyAdmin syntax error in declaring Date variable

提问人:Murphler 提问时间:12/5/2019 最后编辑:Isaac BennetchMurphler 更新时间:12/11/2019 访问量:163

问:

我似乎无法在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 $$

因为我经历了多次迭代,试图找到原因。任何帮助都值得赞赏,因为我被难住了

MySQL 数据库

评论


答:

1赞 juergen d 12/5/2019 #1

不要使用,所有 s 都必须在开头@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 $$

查看不同类型的 MySQL 变量

评论

0赞 Murphler 12/5/2019
非常感谢 - 我现在遇到了另一个错误:#1558 - mysql.proc 的列数错误。预计 21, 找到 20.使用 MariaDB 100128 创建,现在运行100408。请使用mysql_upgrade来修复此错误 因此,看起来我可能正在运行一个稍微过时的版本,因此出现了一系列全新的问题。无论如何,谢谢
0赞 Isaac Bennetch 12/11/2019
当您将 MariaDB 从版本 10.01 升级到 10.04 时,您只是错过了运行发行版中包含的脚本的步骤。如果你运行它,它将修复 proc 表。mysql_upgrade