J'ai une base de données qui est censée être déplacée vers une nouvelle. Mon idée est un script python qui lit toutes les anciennes entrées, les convertit dans le nouveau format et les envoie à la nouvelle base de données. Le problème est que la date (heure) est stockée différemment. Dans l'ancienne base de données, il y a 5 colonnes (année, mois, jour, heure, minute) mais la nouvelle fonctionne uniquement avec un champ date/heure (AAAA-MM-JJ hh: mm: ss).Créer et insérer un objet strftime pour le champ date-heure mysql
Si je tente quelque chose comme ça en 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))
Je reçois même un autre temps que prévu:
2015-11-29 13:30:00
Comment puis-je obtenir pour 180k entrées du format datetime droite ou est-ce peut-être déjà la mauvaise façon d'entrer une valeur dans un champ datetime?
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()
Si je tente ce que je reçois cette erreur:
TypeError: not all arguments converted during string formatting
Que dois-je faire avant que je puisse ajouter une entrée? : S
que pour votre autre question, il semble que vous n'avez pas le même nombre de% s comme le nombre de données –