Python 3.x Python:如何将timedelta保存到MySQL

Python 3.x Python:如何将timedelta保存到MySQL,python-3.x,Python 3.x,我想在python3.x中保存作业的持续时间,并将其保存到MySQL 5.7时间字段中 datetime.datetime.now() - datetime.datetime(2020, 5, 16, 15, 36, 52, 132454) 返回: datetime.timedelta(seconds=7635, microseconds=282960) 如何从该输出中检索秒数,以便将它们放入MySQL语句中?我会尝试这样做,以避免您看到的时区问题: import datetime as d

我想在python3.x中保存作业的持续时间,并将其保存到MySQL 5.7时间字段中

datetime.datetime.now() - datetime.datetime(2020, 5, 16, 15, 36, 52, 132454)
返回:

datetime.timedelta(seconds=7635, microseconds=282960)

如何从该输出中检索秒数,以便将它们放入MySQL语句中?

我会尝试这样做,以避免您看到的时区问题:

import datetime as dt
import mysql.connector

total_seconds = dt.timedelta(seconds=7635, microseconds=282960).total_seconds()

conn = mysql.connector.connect(user='username', database='your_database')
cursor = conn.cursor()
cursor.execute("""INSERT INTO your_table 
                      (your_time_field) 
                  VALUES (SEC_TO_TIME(%s));""",(total_seconds,))

为了避免您看到的时区问题,我会尝试这样做:

import datetime as dt
import mysql.connector

total_seconds = dt.timedelta(seconds=7635, microseconds=282960).total_seconds()

conn = mysql.connector.connect(user='username', database='your_database')
cursor = conn.cursor()
cursor.execute("""INSERT INTO your_table 
                      (your_time_field) 
                  VALUES (SEC_TO_TIME(%s));""",(total_seconds,))

datetime.timedelta(秒=7635,微秒=282960)。总秒数()。我用insert:(datetime.datetime.now()-stats['start_time']).total_seconds()在我的时间字段中获得00:00:00,对,我删除了.total_seconds(),现在它在我的时间字段中工作。你只需要找出为什么现在有2小时的时间偏移:-)哦,我误解了你问题的最后一部分。我的错误。我想知道您是否可以在这里使用MySQL的secu TO TIME()函数。
datetime.timedelta(秒=7635,微秒=282960)。total_seconds()
似乎不起作用。我用insert:(datetime.datetime.now()-stats['start_time']).total_seconds()在我的时间字段中获得00:00:00,对,我删除了.total_seconds(),现在它在我的时间字段中工作。你只需要找出为什么现在有2小时的时间偏移:-)哦,我误解了你问题的最后一部分。我的错误。我想知道你是否可以在这里使用MySQL的SEC_TO_TIME()函数。谢谢你的帮助。我现在去保存UTC,因为它似乎被推荐保存在DBS中,不客气。UTC现在似乎也解决了这个问题。谢谢你的帮助。我现在去保存UTC,因为它似乎被推荐保存在DBS中,不客气。UTC现在似乎也解决了这个问题。