Datum in MySQL DB schreiben

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
HugoB
User
Beiträge: 8
Registriert: Dienstag 29. März 2011, 08:27

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ß
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
sparrow
User
Beiträge: 4505
Registriert: Freitag 17. April 2009, 10:28

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.
Antworten