In QlikView 12.10, there were two specific scenarios that would change the data type or formatting when running a reload with a WHERE clause:
The field is a date (format mm/dd/yyyy) is changed to numeric representation instead (#####)
The field is a float value and is changed to numeric, dropping the decimals when the number is integer. e.g. 10.00 turns into 10
An intentional change in behavior was made in QlikView 12.20 and higher that keeps the original data type/formatting from the source. If the data conversion is necessary, the script will need to be adjusted to force the conversion.
For more information on the intentional change and the reason behind it, please take a look at this article: