在IN附近出现错误,这是我的代码

 DECLARE @DateFrom DateTime ='2018-04-01',
            @DateTo DateTime = '2018-05-31'

            WHILE @DateTo < @DateFrom
            BEGIN
            set @DateFrom = DATEADD(D,1,@DateFrom)
             SET @DateFrom = DATENAME(DW, @DateFrom) IN ( 'tuesday','friday',null)
            END


我收到类似的错误


  关键字“ IN”附近的语法不正确。

最佳答案

如果这确实是mysql,则会出现很多错误1)您无需声明@变量2)要使用set语句为变量分配值,或者如果它是已声明的变量,则可以默认为值3)语句语法不正确应该在某件事发生时...结束时4)每个语句都必须终止5)多代码过程必须包含在BEGIN..END块中5)此代码必须在存储的程序(过程,触发器,函数)中6 )分隔符可能未设置。

这至少是语法,但是我不了解您要使用in语句做什么。

drop procedure if exists p;

delimiter $$
create procedure p()
begin
set @DateFrom ='2018-04-01',
    @DateTo   = '2018-05-31';

   WHILE @DateTo < @DateFrom do
      set @DateFrom = DATEADD(D,1,@DateFrom);
      SET @DateFrom = DATENAME(DW, @DateFrom) IN ( 'tuesday','friday',null);

   END while;
end $$
delimiter ;

09-03 23:50