为 mysql 日期时间字段创建并插入一个 strftime 对象
Create and insert a strftime-object for mysql datetime-field
我有一个应该移动到新数据库的数据库。我的想法是一个 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
看起来你做得对,但你没有打印 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'
我有一个应该移动到新数据库的数据库。我的想法是一个 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
看起来你做得对,但你没有打印 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'