|
Добавление значения в столбец "datetime" привело к переполнению |
☑ |
0
wangoff
16.06.14
✎
20:14
|
Друзья, помогите разобраться в вопросе:
Есть внешний источник данных. Он подключается к таблице SQL, которая хранит данные регистра накопления второй базы 1С.
При запросе используется функция ДобавитьКДате(ВнешнийИсточник.Период,Год,-2000), дабы избавиться от смешения дат.
При этом возникает ошибка:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 22007
Номер ошибки: 517
Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Добавление значения в столбец "datetime" привело к переполнению.
Я проверил, все выбираемые записи имеют корректные данные в поле период. И если использовать функцию ДобавитьКДате(ВнешнийИсточник.Период,Год,-100), то все работает нормально. И исходная функция работала нормально неделю назад.
|
|
1
фобка
16.06.14
✎
20:19
|
>И исходная функция работала нормально неделю назад.
Появилась какая-то запись с пустым периодом?
В общем, "ДобавитьКДате(ВнешнийИсточник.Период,Год,-2000)" выпадает из нормального интервала дат
|
|
2
wangoff
16.06.14
✎
20:30
|
(1) Это было первое, что я проверил. Если в запросе просто выбрать даты, без смещения в -2000, то выходят значения, - все за 4014 год.
|
|
3
фобка
16.06.14
✎
20:34
|
(2) 4014 - очень странная цифра, непонятно откуда она взялась.
Если конкретно здесь ошибки ты не видишь, значит ошибка в другом поле. Вообще, я бы делал запрос на выборку, с упорядочиванием по этой дате и визуально пробежался по результату
|
|
4
rendez-vous
16.06.14
✎
20:37
|
(0) текст запроса нужен
|
|
5
wangoff
16.06.14
✎
20:46
|
(4) Что даст текст запроса? Ошибка воспроизводится изменением параметра функции ДобавитьКДате()
ВЫБРАТЬ
РНОплаты.Сумма КАК Сумма,
ДОБАВИТЬКДАТЕ(РНОплаты.Период, ГОД, -2000) КАК Период,
ДокументСтраховойПолис.Номер,
ПРЕДСТАВЛЕНИЕ(РНОплаты.РегистраторСсылка) КАК Регистратор
ИЗ
ВнешнийИсточникДанных.КонтинентСтрахование30.Таблица.РНОплаты КАК РНОплаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.КонтинентСтрахование30.Таблица.ДокументСтраховойПолис КАК ДокументСтраховойПолис
ПО РНОплаты.ПолисСсылка = ДокументСтраховойПолис.ПолисСсылка
ГДЕ
ДокументСтраховойПолис.Номер В(&Номера)
И РНОплаты.Активность
|
|
6
wangoff
16.06.14
✎
20:56
|
(3) в смысле - странный? Они ж в SQL хранятся со смещением.
|
|
7
rendez-vous
16.06.14
✎
20:59
|
(5) А теперь убери ГДЕ.
Думается мне, что переполнение происходит до того как накладывается фильтр.
|
|
8
фобка
16.06.14
✎
21:10
|
(7) ну, это врядли..
FROM
ON
JOIN
where
GROUP BY
WITH CUBE или WITH ROLLUP
HAVING
SELECT
DISTINCT
ORDER BY
TOP
|
|
9
rendez-vous
16.06.14
✎
21:31
|
(8) Так то оно так. Но источник то внешний. Как в этом случае работает платформа?
|
|
10
фобка
16.06.14
✎
21:37
|
(9) это да..
"Обратите внимание, что фактическое физическое выполнение оператора определяется обработчиком запросов и порядок из этого списка может значительно отличаться."
в общем, надо глядеть саму таблицу
Выбрать РНОплаты.Период Из
ВнешнийИсточникДанных.КонтинентСтрахование30.Таблица.РНОплаты РНОплаты
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший