This is a common issue with Excel + SSIS because for several reasons
- Excel column typing – SSIS guesses the datatype of Excel columns based on the first 8 rows (by default). If it sees mixed values (dates, blanks, text), it may interpret the column as
DT_WSTR.
- Invalid/blank values – If the column has empty strings, "N/A", or dates in unexpected format,
(DT_DBDATE) conversion will fail.
- Regional settings – Excel dates like
09/09/2025 vs 09.09.2025 can break conversion if locale doesn't match.
To fix this, you can try the following:
- Clean conversion in Derived Column with error handling
Instead of a direct cast:
(DT_DBDATE)(NULL(DT_WSTR,50) == [Last Found] ? NULL(DT_WSTR,50) : TRIM([Last Found]))
Or more safely, use a Conditional Split first:
- Route rows where
ISDATE([Last Found]) == TRUE
- Convert only those.
- Handle others (null, bad data) separately.
- Force Excel source column to be read as string
- In your Excel Source, set
IMEX=1 in the connection string (Extended Properties="Excel 12.0;HDR=YES;IMEX=1";) so SSIS reads everything as text.
- Then convert with
(DT_DBDATE) or (DT_DATE) safely in the data flow.
- Use
DT_DATE instead of DT_DBDATE
DT_DBDATE has stricter rules (only date, no time). Try:
(DT_DATE)[Last Found]
and then map to SQL date — SSIS will handle the conversion.
If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.
hth
Marcin