2016-04-05 12 views
0

私は新しいデータベースに移動するはずのデータベースを持っています。私の考えは、古いエントリをすべて読み込み、新しいフォーマットで変換して新しいデータベースに送るpythonスクリプトです。 問題は、日付(時刻)が別々に格納されていることです。古いDBには5つの列(年、月、日、時、分)がありますが、新しい列はdatetimeフィールド(YYYY-MM-DD hh:mm:ss)で動作します。mysql datetime-fieldのstrftime-objectを作成して挿入します

私は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)) 

私も予想以上に別の時間を取得:

2015-11-29 13:30:00 

がどのように私は180Kエントリ右の日時書式のために取得することができますまたは多分これですすでにdatetimeフィールドに値を入力する間違った方法はありますか?

編集:私はこれをしようとした場合、私はこのエラーを

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() 

を取得しています:私は、エントリを追加する前に行うことを他の

TypeError: not all arguments converted during string formatting 

は何がありますか? :S

+0

、あなたが%の同じ番号を持っていないようですsをデータ数として –

答えて

0

あなたが右のそれをやっているが、あなたは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

私は思ったよりもずっと簡単です。多分あなたは別の問題で私を助けることができます(上記の編集の記事を参照)? – Ragyal

関連する問題