在Python中,如何将Unix时间戳插入MySQL datetime字段?

5 投票
3 回答
11161 浏览
提问于 2025-04-15 20:30

我正在使用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

撰写回答