À quelle base de données vous connectez-vous ? Je sais qu'Oracle peut être pointilleux sur les formats de date et autres. ISO 8601 format.
**Note : Oups, je viens de lire que vous êtes sur MySQL. Formatez simplement la date et essayez-la en tant qu'appel SQL direct distinct pour la tester.
En Python, vous pouvez obtenir une date ISO comme suit
now.isoformat()
Par exemple, Oracle aime les dates comme
insert into x values(99, '31-may-09');
En fonction de votre base de données, si c'est Oracle, vous devrez peut-être la TO_DATE :
insert into x
values(99, to_date('2009/05/31:12:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'));
L'utilisation générale de TO_DATE est :
TO_DATE(<string>, '<format>')
Si vous utilisez une autre base de données (j'ai vu le curseur et pensé à Oracle ; je peux me tromper), vérifiez leurs outils de formatage de la date. Pour MySQL, il s'agit de DATE_FORMAT() et pour SQL Server, de CONVERT.
En outre, l'utilisation d'un outil comme SQLAlchemy supprimera ces différences et vous facilitera la vie.