SSIS 2000 to 2019 numeric value multiplying by 100

I am new to SSIS so please forgive any stupid mistakes.

I have an SQL 2000 Server (not able to upgrade atm) and I need to get some data over to an SQL 2019 server so I am using a simple SSIS setup with ODBC connections to both. I have verified that both Odbc connections are set to English (United States), both servers have the same Server Collation and Language English (United States).

I am reading some data from the 2000 server using a query casing the values to numeric(9,2) in some places and decimal(9,2) in some places.

The issue is if I just run the query I get values like 100.00 or 59.27 but when I look at the data in the table it is sent to I get 10000.00 or 5927.00.

Any help appreciated.

What is the 2019 table field you are inserting to set as? Make sure the scale on the 2019 table is set to 2 and not 0. If it is 0, that would be why it is doing it that way.

This sounds like a bug in the ODBC driver.