Цитата:
Сообщение от
jopagames
Расследование редкой функции DT2DATE - штука хорошая

Уточните только, пожалуйста, а ошибка где именно обнаружилась (и как исправилась)?
1. В голове программиста
2. При формировании файла XML
3. В ядре Navision
4. В "настройках сервера приложений для сервиса"
5. где-то ещё...
Я прочитал, но не всё понял.
Особенно про "ошибка только в последние 2 месяца" стала проявляться (что же с UTC случилось? Земля в ноябре налетела на небесную ось?

)
Все просто - последние два месяца идет переход с 2009 на 2016.
В xml как раз приходит все верно. Именно это время и хотелось бы вносить в базу. Но при импорте тупо добавляется время из текущего часового пояса сервера. Подчеркну - сервера, на котором установлен сам Nav! Чтобы избежать этого, была написана функция, которая сначала разделяла строку на дату и время, а потом снова склеивала. И только после этого вносилось в базу. В 2009 это работало, время попадало правильное. В 2016 - перестало. Именно из-за DT2DATE. Которая теперь так же смотрит на часовой пояс сервера и добавляет часы к дате.
Настройка сервера по ссылке выше влияет только при работе веб-сервиса. У нас установлено UTC, но можно поставить и другое - никаких изменений нет.
В результате сейчас дату из строки получаем строковой функцией:
Код:
EVALUATE(xDate,COPYSTR(FORMAT(xDateTime,0,9),1,10),9);
Попутно вопрос: для типа datetime можно ли на входе сразу указывать часовой пояс ?