Perché è > suddivisione condizionale nel pacchetto SSIS che restituisce > = risultato? aggiornamento: (DateTime! = DT_DBTIMESTAMP?!)
-
05-07-2019 - |
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?
Soluzione
Nevermind. Trovato la risposta su Microsoft Forum .