Почему> условное разбиение в возвращающемся пакете служб SSIS> = результат? обновление: (DateTime! = DT_DBTIMESTAMP?!) - PullRequest
0 голосов
/ 07 января 2009

У меня есть преобразование условного разбиения потока данных служб SSIS, которое возвращает результат> =, когда оно должно возвращать> результат.

С самого начала ... Мой пакет служб SSIS выполняет задачу SQL, которая хранит max (дату) из одной таблицы в переменной User :: max_date типа DateTime, имеющей область действия пакета.

Мой пакет затем приступает к выполнению задачи «Поток данных», в которой имеется условное преобразование разбиения с условием date > @[User::max_date]. Результирующий набор всегда представляет собой одну строку, значение DateTime которой равно User :: max_date, то есть возвращает строку, содержащую max (date), если не было добавлено больше строк с более поздними датами, чем max (date). Что является неожиданным поведением.

Более того, другие выходные данные условного разбиения неверны - это все строки с date < @[User::max_date], а не все строки с date <= @[User::max_date], как и следовало ожидать.

Почему это происходит?

Обновление:

Я понял, как это происходит, но не почему. User::max_date хранит DateTime, и мое значение date из моей задачи Data Flow равно DT_DBTIMESTAMP. При сравнении их с DATEDIFF(..) они различаются только в миллисекундах и дальше.

Так что я могу обойти эту проблему, но я понятия не имею, почему это будет реализовано таким образом.

Комментарии

1 Ответ

0 голосов
/ 09 января 2009

Nevermind. Нашел ответ на форумах Microsoft .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...