





Почему бы не позволить MySQL выполнять тяжелую работу?
select unix_timestamp(fieldname) from tablename;
Если вы по какой-то причине не хотите, чтобы MySQL выполнял эту работу, вы можете сделать это на Python достаточно легко. Когда вы получаете столбец datetime из MySQLdb, вы получаете объект 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())
Я использую что-то вроде следующего, чтобы получить секунды с эпохи (UTC) из даты MySQL (местное время):
calendar.timegm(
time.gmtime(
time.mktime(
time.strptime(t,
"%Y-%m-%d %H:%M:%S"))))
Подробнее в этом вопросе: Как преобразовать местное время в UTC в Python?
преобразование времени mysql в эпоху:
>>> 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
как выглядит временная метка MySQL?