Yes. You have to have a similar datatypes to do joins between tables. The char would be most likely interpreted as a text value and the date as a dual value with both text and number. Your best option would be to change the datatype of the char value in the following way.
... date#(trim(charDateField),'YYYYMMDD') as charDateField, ...
The trim is just to make sure there is no whitespace character hiding in the column.