2008-09-22 16 views

Respuesta

27

¿Por qué no dejar que MySQL haga el trabajo duro?

seleccione unix_timestamp (fieldname) from tablename;

+0

Esto debe marcarse como la respuesta aceptada. – colminator

3

Si no desea que MySQL haga el trabajo por algún motivo, puede hacerlo en Python con la suficiente facilidad. Cuando recuperas una columna de fecha y hora de MySQLdb, obtienes un objeto Python datetime.datetime. Para convertir uno de estos, puede usar time.mktime. Por ejemplo:

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()) 
1

utilizo algo como lo siguiente para obtener segundos desde la época (GMT) desde una fecha MySQL (hora local):

calendar.timegm(
    time.gmtime(
     time.mktime(
     time.strptime(t, 
         "%Y-%m-%d %H:%M:%S")))) 

Más información en esta pregunta: How do I convert local time to UTC in Python?

8

convertir el tiempo de MySQL a época; o:

>>> 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 

convertir época a algo M ySQL puede utilizar:

>>> 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 
Cuestiones relacionadas