Is the field a MySQL Date format? Remember that the presentation you see in the admin interface isn't necessarily the same as what's stored in the database.
What if you rewrite the query with dates in ISO format, eg BETWEEN '2017-09-01' AND '2017-09-31' ?
Also, there isn't a 31st of September. Could that be causing the problem, because you're specifying an invalid end date? (And, come to that, if the CLI is parsing the date the US way, it'll read 01/09/2017 as 9th January, so may be querying for dates between then and 'invalid'.
What about having that condition as instead
AND MONTH(PO.Transaction_date) = 9