Ich habe eine Datenbank, die in eine neue verschoben werden soll. Meine Idee ist ein Python-Skript, das alle alten Einträge liest, sie im neuen Format konvertiert und an die neue Datenbank sendet. Das Problem ist, dass das Datum (Uhrzeit) anders gespeichert wird. In der alten db gibt es 5 Spalten (Jahr, Monat, Tag, Stunde, Minute), aber die neue funktioniert nur mit einem Datetime-Feld (JJJJ-MM-TT hh: mm: ss).Erstellen und Einfügen eines Strftime-Objekts für mysql datetime-Feld
Wenn ich versuche, so etwas wie dies in Python:
import time
t = time.mktime((2015,11,29,14,30,0,0*,246*,-1*)) # * not sure about these values
print time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(t))
ich noch ein weiteres Mal bekommen als erwartet:
2015-11-29 13:30:00
Wie kann ich für 180k Einträge die richtige Datetime-Format erhalten oder ist das vielleicht schon die falsche Art einen Wert in ein Datetime Feld einzugeben?
EDIT:
import MySQLdb
mysql_opts = {
'host': "123.45.67.89",
'user': "user",
'pass': "password",
'db': "db"}
t = time.mktime((2015, 11, 29, 14, 30, 0, 0, 0, 0))
date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t))
data = [date,...]
mysql = MySQLdb.connect(mysql_opts['host'],mysql_opts['user'],mysql_opts['pass'],mysql_opts['db'])
cursor = mysql.cursor()
cursor.execute("INSERT INTO table (date, ...) VALUES(%s,...)",(data[0],...))
mysql.commit()
mysql.close()
Wenn ich das versuche ich immer diese Fehlermeldung:
TypeError: not all arguments converted during string formatting
Was muss ich tun, bevor ich kann einen Eintrag hinzufügen? : S
wie für Ihre andere Frage, so scheint es, dass Sie die gleiche Anzahl von% nicht haben s als die Anzahl der Daten –