2008-09-22 5 views
7

में मिस्क्ल टाइमस्टैम्प को युग टाइम में कनवर्ट करें MySQL टाइमस्टैम्प को पाइथन में युग के समय में कनवर्ट करें - क्या ऐसा करने का कोई आसान तरीका है?पाइथन

+0

MySQL टाइमस्टैम्प कैसा दिखता है? –

+0

"वाईवायवाई-एमएम-डीडी एचएच: एमएम: एसएस" प्रारूप में एक "स्ट्रिंग"। – Tom

उत्तर

27

MySQL को कड़ी मेहनत क्यों न करें?

tablename से unix_timestamp (fieldname) का चयन करें;

+0

इसे स्वीकृत उत्तर के रूप में चिह्नित किया जाना चाहिए। – colminator

3

यदि आप किसी कारण से MySQL काम नहीं करना चाहते हैं, तो आप इसे आसानी से पाइथन में कर सकते हैं। जब आप MySQLdb से डेटाटाइम कॉलम वापस प्राप्त करते हैं, तो आपको एक पायथन डेटाटाइम.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()) 
1

मैं युग (यूटीसी) एक MySQL तारीख से के बाद से सेकंड पाने के लिए निम्न (स्थानीय समय) की तरह कुछ का उपयोग करें:

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

इस सवाल में अधिक जानकारी: How do I convert local time to UTC in Python?

8

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 

कुछ करने के लिए युग परिवर्तित एम ySQL का उपयोग कर सकते हैं:

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