#sql-server
#sql-server
Вопрос:
Я получил эту ошибку
Неправильный синтаксис рядом с ‘(‘
Я не смог найти, в чем проблема с синтаксисом. что не так? Как это исправить?
INSERT INTO Recurring (WO_DespatchName,
FORMAT(start_date, 'dd/MMM/yyyy hh:mm tt') AS start_date,
WO_MaidName, WO_CustomerName, WO_Address,
FORMAT (end_date, 'dd/MMM/yyyy hh:mm tt') AS end_date,
WO_ContactNumber, WO_Addresss)
VALUES (@WO_DespatchName, @start_date,
@WO_MaidName, @WO_CustomerName, @WO_Address,
@end_date, @WO_ContactNumber, @WO_Addresss);
SELECT SCOPE_IDENTITY();
Комментарии:
1. Отсутствует контекст, IMO. Являются ли они
;
допустимыми в выбранной вами среде, где вы выполняете инструкции SQL?2. У вас не может быть таких вещей, как
FORMAT
иAS
в списке столбцов послеINSERT INTO
инструкции — только имена столбцов (никаких выражений, ничего больше)3. попробуйте
CAST()
вместоFORMAT()
4. @Eds, проблема не в функциях Format или Cast, пользователи использовали функцию FORMAT в неправильном месте
Ответ №1:
Предполагается, что вы используете FORMAT
into values
. Попробуйте обновить свой запрос, как показано ниже.
INSERT INTO Recurring (WO_DespatchName,
start_date,
WO_MaidName, WO_CustomerName, WO_Address,
end_date,
WO_ContactNumber, WO_Addresss)
VALUES (@WO_DespatchName,
FORMAT(@start_date, 'dd/MMM/yyyy hh:mm tt'),
@WO_MaidName, @WO_CustomerName, @WO_Address,
FORMAT (@end_date, 'dd/MMM/yyyy hh:mm tt'),
@WO_ContactNumber, @WO_Addresss);
SELECT SCOPE_IDENTITY();