在Python中,如何将Unix时间戳插入MySQL datetime字段?
我正在使用Python的MySQLDB库,我想把这个数据插入到MySQL的DATETIME字段里。请问我该怎么用cursor.execute来实现呢?
3 个回答
1
解决了。
我刚刚做了这个:
用 datetime.datetime.now() 获取当前时间,然后把这个时间放进那一列里。
3
你可以使用 MySQL 的 FROM_UNIXTIME 函数:
#import MySQLdb as mysql
import mysql.connector as mysql
if __name__ == '__main__':
cnx = mysql.connect(user='root')
cur = cnx.cursor()
cur.execute("SELECT FROM_UNIXTIME(%s)", (1268811665,))
print cur.fetchall()
cur.close()
cnx.close()
如果你把上面的内容保存为 epoch.py,输出结果会是:
$ python epoch.py
[(datetime.datetime(2010, 3, 17, 8, 41, 5),)]
你可以在你的 INSERT 或其他数据操作 SQL 语句中使用 FROM_UNIXTIME。
8
要把UNIX时间戳转换成Python的日期时间对象,可以使用 datetime.fromtimestamp()
这个方法(文档链接)。
>>> from datetime import datetime
>>> datetime.fromtimestamp(0)
datetime.datetime(1970, 1, 1, 1, 0)
>>> datetime.fromtimestamp(1268816500)
datetime.datetime(2010, 3, 17, 10, 1, 40)
从Python的日期时间对象转换成UNIX时间戳:
>>> import time
>>> time.mktime(datetime(2010, 3, 17, 10, 1, 40).timetuple())
1268816500.0