DB frisst SQL, aber Python bringt Fehlermeldung
Verfasst: Montag 21. November 2011, 17:23
Hallo zusammen,
ich möchte eine Query per Python an eine Postgres-DB schicken, was auch überall in meinem Programm problemlos funktioniert. Nur an einer Stelle bekomme ich die Meldung
Der Code:
Vorher wird natürlich eine Connection aufgebaut und ein Cursor "curs" erzeugt, aber das spar ich mir jetzt mal, weil es darauf denke ich nicht ankommt.
Wenn ich die Variable sql ausgeben lasse und den Code in meinen pgAdmin kopiere, bekomme ich Datensätze angezeigt. Schicke ich den selben Code über Python an die DB, kommt die obige Fehlermeldung. Aufällig ist auch das 'E', das vor das Datum gesetzt wird. Aber lt. google ist das wohl normal so bei Postgres und sollte nicht das Problem sein.
Die Query sieht im Endeffekt dann so aus: SELECT * FROM kunde WHERE gueltig_bis > '2011-10-01'
Der Parameter (das Datum) ist vom Typ datetime. Hab es auch testweise schonmal in str konvertiert.
Weiß jemand, was ich hier machen könnte?
Vielen Dank für jeden Hinweis!
Andi
ich möchte eine Query per Python an eine Postgres-DB schicken, was auch überall in meinem Programm problemlos funktioniert. Nur an einer Stelle bekomme ich die Meldung
Code: Alles auswählen
psycopg2.ProgrammingError: syntax error at or near "2011"
LINE X: ...gueltig_von <= 'E'2011-10-01...
Code: Alles auswählen
temp = datetime.strptime(datum,"%d.%m.%Y")
datum=temp.strftime("%Y-%m-%d")
sql="""SELECT * FROM kunde WHERE gueltig_bis > '%s' """
curs.execute(sql, datum)
rows = curs.fetchone
Wenn ich die Variable sql ausgeben lasse und den Code in meinen pgAdmin kopiere, bekomme ich Datensätze angezeigt. Schicke ich den selben Code über Python an die DB, kommt die obige Fehlermeldung. Aufällig ist auch das 'E', das vor das Datum gesetzt wird. Aber lt. google ist das wohl normal so bei Postgres und sollte nicht das Problem sein.
Die Query sieht im Endeffekt dann so aus: SELECT * FROM kunde WHERE gueltig_bis > '2011-10-01'
Der Parameter (das Datum) ist vom Typ datetime. Hab es auch testweise schonmal in str konvertiert.
Weiß jemand, was ich hier machen könnte?
Vielen Dank für jeden Hinweis!
Andi