Получение ошибки рядом с 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".
DECLARE @DateFrom DateTime ='2018-04-01',
@DateTo DateTime = '2018-05-31'
WHILE @DateTo < @DateFrom
BEGIN
set @DateFrom = DATEADD(D,1,@DateFrom)
SET @DateFrom = case when DATENAME(DW, @DateFrom) IN ( 'tuesday','friday',null) then @DateFrom else null end
END
Если это действительно mysql, есть много ошибок. 1) Вы не объявляете @переменные. 2) Чтобы присвоить значение переменной, используйте оператор set или если это объявленная переменная, вы можете по умолчанию использовать значение 3) Хотя синтаксис операторов неверен это должно быть в то время, когда что-то DO... END WHILE 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 ;
IN
в оператореSET
.