Seite 1 von 1

Datum in MySQL DB schreiben

Verfasst: Freitag 29. April 2011, 10:34
von HugoB
Hallo,

ich bin noch recht neue in Sachen Python. Mein aktuelles großes Problem:

Ich lese aus einer CSV Datei zwei Datumswerte (beide im Format DD.MM.YYY) und will sie in ein Date- und ein Timestamp-Feld einer MySQL Db schreiben.

Mein Versuch:

Code: Alles auswählen

.....
File = csv.reader(open('I:\test.csv', 'rb'))
for row in File:
    Doc_Date = time.strptime(row[6],"%d.%m.%Y")
    Valid_From = time.strptime(row[10],"%d.%m.%Y")
    cursor.execute ( """INSET INTO Test (Datum) VALUES (%s, %s)""", ( Doc_Date, Valid_From ) )
    .....
Dann habe ich jedoch nur 0000-00-00 in der Spalte Valid_From und 0000-00-00 00:00:00 in Doc_Date.


Gruß

Re: Datum in MySQL DB schreiben

Verfasst: Freitag 29. April 2011, 11:25
von Hyperion
Und Deine Frage ist nun, wieso bzw. wie Du das ändern kannst? ;-)

MySQL kennt eine Funktion, ähnlich ``strptime`` und ``strftime`` aus dem datetime-Modul für Python, mit welcher man ein Datum formatieren kann. Diese heißt ``DATE_FORMAT``. Damit solltest Du das gegebene Datumformat in einen Datetime kompatiblen String wandeln können.

Re: Datum in MySQL DB schreiben

Verfasst: Freitag 29. April 2011, 14:59
von sparrow
datetime-Objekte sollten in der regel auch eine .isoformat()-Funktion haben.
Das hat mir früher immer geholfen einen String zu generieren den mySQL verstanden hat.