looks like you're using "." and "," as field and row separators. I suggest using the default of "|" and "¶". Using the , and . you will have issues with numbers. Note that ExecuteSQL uses the "." as the decimal separator. If your system uses ",", then you will get ? in numbers fields. If that's the case, substitute "." by "," in the return result.
How about importing directly from PostgreSQL via ODBC? Then you don't need care of data format.
Another way for testing, change WHERE clause
WHERE InvoiceDate=>? AND InvoiceDate<?
then give parameters as Date(1;1;2015) and Date(1;1;2016)