Я столкнулся с этой проблемой, когда SQL попросил меня указать псевдонимы при преобразовании символов в формат даты, вот мой запрос:
declare @dateTarget char(8) = '20130613'
declare @dateTarget2 char(8) = '20180608'
declare @dateNow as date = GETDATE()
IF CAST(CONVERT(DATE,
LEFT(@dateTarget, 4) + SUBSTRING(@dateTarget, 5, 2) + RIGHT(@dateTarget, 2))) >= CAST(@dateNow AS DATE)
BEGIN
PRINT 'Target cannot be greater than DateNow.'
END
ELSE IF CAST(CONVERT(DATE, LEFT(@dateTarget2, 4) + SUBSTRING(@dateTarget2, 5, 2) + RIGHT(@dateTarget2, 2))) >= CAST(@dateNow AS DATE)
BEGIN
PRINT 'Target2 cannot be greater than DateNow.'
END
ELSE
BEGIN
PRINT 'ok'
END
, и вот ошибки, которые я получаю:
Сообщение 1035, Уровень 15, Состояние 10, Строка 5
Неверный синтаксис рядом с 'CAST', ожидаемый 'AS'.
Сообщение 156, Уровень 15, Состояние 1, Строка 9
Неверный синтаксис рядом с ключевым словом «ELSE».
Сообщение 1035, Уровень 15, Состояние 10, строка 9
Неверный синтаксис рядом с «CAST», ожидаемый «AS».
Msg156, Уровень 15, Состояние 1, Строка 13
Неверный синтаксис рядом с ключевым словом «ELSE».