Имя: Пароль:
1C
1С v8
Выгрузка даты из 1С в таблицу SQL (Формат DateTime)
, ,
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 её распознала?
1 Cool_Profi
 
11.12.16
18:12
Разумеется, yyyymmddhhmmss
2 Art-Key
 
11.12.16
19:59
(1) Огромное спасибо, всё получилось!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс