mysql - PHPMyAdmin 声明日期变量时出现语法错误

标签 mysql sql

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

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@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 $$

因为我已经经历了多次迭代试图找到原因。任何帮助表示感谢,因为我很困惑

最佳答案

不要使用@并且所有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

关于mysql - PHPMyAdmin 声明日期变量时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59193433/

相关文章:

SQL Server 日期格式应类似于 "Oct 17, 2014 10:14 PM"

两列上的 MySQL 外键 : integer AND string

sql - 我想使用 union ALL 从 select 语句中插入

sql - NULL CHAR 变量的 CHARINDEX 问题

php - 如何防止 PHP 中的 SQL 注入(inject)?

java - jOOQ 和桥接表

java - Hibernate:记录到数据库后无法获取数据

php - 我怎样才能选择每隔一行?

mysql - 更新 MySQL 表中的外键

mysql - 在 MySQL 数据库中的输入字符串中搜索值