我有一个.txt文件,其中包含一行unixtime,如(1322485992.420381000),点前后的数字对于所有数据都是相同的。首先,我想将此列导入Mysql表,我应该如何定义数据类型?
CREATE TABLE videoinfo (id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, unixtime char(50))
之后,在Python中,我需要将此列转换为日期时间,如:2011-11-28 14:25:23
我使用results
来保存从数据库中获取的数据,然后尝试将其转换为datetime。
但它无法奏效,它说datetime.fromtimestamp requires a float
。但是如果我使用unixtime float(10,10)
来创建列,则无法将来自txt文件的数据写入数据库。
results = cur.fetchall()
for result in results:
times = datetime.fromtimestamp(result[0])
cur.execute("ALTER TABLE youtube ADD date DATETIME NOT NULL DEFAULT after unixtime")
for time in times:
cur.execute(u'''insert into `date` values (%s)''', time)
有人可以帮忙吗?非常感谢!!!
CNC中
for row in cur.fetchall():
print (row)
times = datetime.fromtimestamp(float(row))
打印结果为('1322485970.084063000',)
,然后错误消息为TypeError: float() argument must be a string or a number.
那么如何获取纯字符串值以摆脱('',)
CNC中 使用row [0]代替......问题解决了......
答案 0 :(得分:1)
看起来像DOUBLE(11,9)
,虽然这么大的数字可能会导致32位系统出现问题。如果这是一个问题,请考虑使用VARCHAR(21)
。
此外,MySQL只是理解FROM_UNIXTIME(1322485992.420381000)
。
-edit -
如果说“需要浮动”,为什么不使用float(result)
?