在Python中将MySQL时间戳转换为纪元时间

7 投票
4 回答
19126 浏览
提问于 2025-04-11 09:18

在Python中,如何把MySQL的时间戳转换成纪元时间(epoch time)?有没有简单的方法可以做到这一点?

4 个回答

5

如果你有某种原因不想让MySQL来处理这些事情,那么你可以很简单地在Python中完成。 当你从MySQL数据库中获取一个日期时间列时,你会得到一个Python的datetime.datetime对象。要转换这个对象,你可以使用time.mktime。比如:

import time
# Connecting to database skipped (also closing connection later)
c.execute("SELECT my_datetime_field FROM my_table")
d = c.fetchone()[0]
print time.mktime(d.timetuple())
9

将MySQL时间转换为时间戳(epoch):

>>> import time
>>> import calendar
>>> mysql_time = "2010-01-02 03:04:05"
>>> mysql_time_struct = time.strptime(mysql_time, '%Y-%m-%d %H:%M:%S')
>>> print mysql_time_struct
(2010, 1, 2, 3, 4, 5, 5, 2, -1)
>>> mysql_time_epoch = calendar.timegm(mysql_time_struct)
>>> print mysql_time_epoch
1262401445

将时间戳转换为MySQL可以使用的格式:

>>> import time
>>> time_epoch = time.time()
>>> print time_epoch
1268121070.7
>>> time_struct = time.gmtime(time_epoch)
>>> print time_struct
(2010, 3, 9, 7, 51, 10, 1, 68, 0)
>>> time_formatted = time.strftime('%Y-%m-%d %H:%M:%S', time_struct)
>>> print time_formatted
2010-03-09 07:51:10
28

为什么不让MySQL来处理复杂的工作呢?

select unix_timestamp(fieldname) from tablename;

撰写回答