0
Art-Key
11.12.16
✎
18:01
|
Доброго времени суток, коллеги! Прошу помочь с разрешением проблемы.
Возникла проблема с передачей даты из 1C в таблицу SQL. Суть такова:Запросом я делаю выборку данных, которую хочу передать в SQL, далее указываю шаблон запроса, и в цикле меняю переменные на значения из запроса и выполняю построчно.
ШаблонЗапроса = "INSERT INTO [INVENT] ([ID], [CHECK_DATE]) values (@ID@, @CHECK_DATE@)";
Пока Выборка.Следующий() Цикл
Стр = стрЗаменить(ШаблонЗапроса, "@ID@", Формат(Выборка.Номенклатура, "ЧГ=0"));
Стр = стрЗаменить(Стр, "@CHECK_DATE@", "'" + Формат(Выборка.СрокГодности, "ДФ='yyyy-MM-dd HH:mm:ss:000'") + "'");
cmd.CommandText = Стр;
Попытка
cmd.execute();
//Формат даты Выборка.СрокГодности - ДатаВремя;
//Формат поля [CHECK_DATE] - DateTime.
Выдается ошибка: Запрос: INSERT INTO [INVENT] ([ID], [CHECK_DATE]) values (37999322, '2016-11-29 00:00:00:000'). Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][SQL Server Native Client 10.0][SQL Server]Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.
При чем, массив передаваемых строк большой, и часть из них все таки записывается в таблицу.
Каким образом необходимо форматировать дату в 1С, чтобы SQL её распознала?
|
|