Allora, l'ultimo step che ho seguito è questo:
In Integration Services costruisco il campo datascadenza nel seguente modo:
Ovvero a partire da DATFVI, che su AS400 è un numerico, prima lo casto a stringa, poi gli faccio un substring per suddividerlo in anno, mese e giorno, infine concateno i risultati intervallandoli con i trattini.
Nota che subito prima di questo step utilizzavo anche la costruzione della stringa senza trattini e con il tipo dati varchar(8) sul DB di destinazione:
Il caricamento dati va a buon fine, ad esempio il primo record di una select * è:
codpro codact uvc colli datagiacenza datascadenza
MUBE00240 ELI 72 12 2009-06-01 00:00:00.000 2009-10-05
Notare che la data giacenza è differente dalla datascadenza perchè viene inserita direttamente con un getdate
Poi provo a fare una select da sql server:
SELECT *
FROM giacenze
where convert(datetime,datascadenza,112) = GETDATE()
quello che ottengo è l'errore di cui sopra