Getisate службы SSIS в столбце DateTimeOffset - значение данных переполнило тип - PullRequest
1 голос
/ 14 марта 2012

У меня есть пакет служб SSIS. Источник - запрос SQL. Пункт назначения - таблица. Пакет работал до тех пор, пока я не изменил столбец в таблице назначения с datetime на datetimeoffset (0).

Теперь все записи завершаются с ошибкой «Ошибка преобразования из-за того, что значение данных превысило тип, используемый поставщиком» в этом конкретном столбце.

Значением в исходном запросе является getdate (). Я попытался TODATETIMEOFFSET (getdate (), '- 05:00') безуспешно.

Фактически, единственное, что до сих пор работало, это жестко запрограммируйте следующее в исходный запрос:

cast('3/14/12' as datetime)

Единственная другая интересная информация - это то, что пакет работал нормально при выполнении исходного запроса к другому серверу, подразумевая, что, возможно, задан параметр - но я не вижу очевидных различий между двумя серверами.

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Я собирался предложить добавить «компонент преобразования данных», чтобы справиться с ним, но поскольку вы изменили только место назначения, это означает, что вы можете изменить исходный запрос на:

select cast(YOUR_DATE_COLUMN as datetimeoffset(0))
0 голосов
/ 27 марта 2012

В случае, если кто-то еще ищет, мы нашли альтернативное решение, которое работает, если источник находится в SQL 2005 (без поддержки datetimeoffset).

select dateAdd(minute,datediff(minute,0,getutcdate()),0)

Целью является снижение точности. Конечно, я тоже теряю секунды, но если я попробую вышеуказанную строку с секундами, я получу ошибку переполнения.

...