2016-04-05 1 views
0

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

+0

que pour votre autre question, il semble que vous n'avez pas le même nombre de% s comme le nombre de données –

Répondre

0

Il semble que vous faites correctement, mais vous n'êtes pas l'impression moment GMT:

# get from old DB 
Y = 2015 
m = 11 
d = 29 
H = 14 
M = 30 
S = 0 

t = time.mktime((Y, m, d, H, M, S, 0, 0, 0)) 
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t)) # use this to get the same time 

Out[1]: '2015-11-29 14:30:00' 
+0

Merci, beaucoup plus facile que je pensais. Peut-être que vous pouvez m'aider avec un autre problème (voir le post édité ci-dessus)? – Ragyal