Perché è > suddivisione condizionale nel pacchetto SSIS che restituisce > = risultato? aggiornamento: (DateTime! = DT_DBTIMESTAMP?!)

StackOverflow https://stackoverflow.com/questions/421448

Domanda

Ho una trasformazione suddivisa condizionale del flusso di dati SSIS che sta restituendo un risultato > = quando dovrebbe restituire un > risultato.

Dall'inizio ... Il mio pacchetto SSIS esegue un'attività SQL che memorizza un max (data) da una tabella nella variabile User :: max_date di tipo DateTime con ambito pacchetto.

Il mio pacchetto procede quindi all'esecuzione di un'attività Flusso di dati che ha una trasformazione suddivisa condizionale in essa con la condizione data > @ [User :: MAX_DATE] . Il set di risultati è sempre una singola riga con il valore DateTime uguale a User :: max_date, ovvero restituisce la riga che contiene max (data) se non sono state aggiunte più righe con date più recenti di max (data). Qual è il comportamento imprevisto.

Inoltre, l'altro output della suddivisione condizionale non è corretto: sono tutte le righe con data < @ [User :: max_date] e non tutte le righe con date < = @ [User :: max_date] come ci si aspetterebbe.

Perché sta succedendo questo?

Aggiornamento:

Ho capito come sta succedendo, ma non perché. User :: max_date sta memorizzando un DateTime e il mio valore date dal mio task Flusso di dati è un DT_DBTIMESTAMP . Confrontandoli con un DATEDIFF (..) differiscono solo a millisecondi e oltre.

Quindi posso aggirare il problema, ma non ho idea del perché questo sarebbe implementato in questo modo.

Commenti?

È stato utile?

Soluzione

Nevermind. Trovato la risposta su Microsoft Forum .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top