我有一个应该被移动到新数据库的数据库。我的想法是一个python脚本,它读取所有旧条目,以新格式转换它们并将它们发送到新数据库。 问题是日期(时间)的存储方式不同。在旧的数据库中有5列(年,月,日,小时,分钟),但新的列只适用于日期时间字段(YYYY-MM-DD hh:mm:ss)。
如果我在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条目获取正确的日期时间格式,或者这可能是在日期时间字段中输入值的错误方法?
编辑:
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 :(得分: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'