2009-01-07 9 views
0

J'ai une transformation de division conditionnelle de flux de données SSIS qui retourne un résultat> = quand il devrait retourner un résultat. Depuis le début ... Mon package SSIS exécute une tâche SQL qui stocke un max (date) à partir d'une table dans la variable User :: max_date de type DateTime qui a la portée du package.Pourquoi> la division conditionnelle dans le package SSIS renvoie> = result? update: (DateTime! = DT_DBTIMESTAMP?!)

Mon package procède ensuite à l'exécution d'une tâche de flux de données dans laquelle une transformation de division conditionnelle a la condition date > @[User::max_date]. Le jeu de résultats est toujours une seule ligne dont la valeur DateTime est égale à User :: max_date, c'est-à-dire qu'elle renvoie la ligne contenant max (date) si plus de lignes ont été ajoutées avec des dates plus récentes que max (date). Quel est le comportement inattendu.

En outre, l'autre sortie de la division conditionnelle est incorrecte - il s'agit de toutes les lignes avec date < @[User::max_date] et pas toutes les lignes avec date <= @[User::max_date] comme on pourrait s'y attendre.

Pourquoi cela se produit-il?

Mise à jour:

J'ai compris comment cela se passe, mais pas pourquoi. User::max_date stocke un DateTime et ma valeur date de ma tâche de flux de données est un DT_DBTIMESTAMP. En les comparant avec un DATEDIFF(..), ils diffèrent seulement en millisecondes et au-delà. Donc, je peux contourner le problème, mais je ne sais pas pourquoi cela serait mis en œuvre de cette façon.

Commentaires?

Répondre

0

Nevermind. Trouvé la réponse sur le Microsoft forums.

Questions connexes