在mysql中存储python timedelta值的最佳方法是什么?

asd*_*sdf 5 python mysql datetime-format timedelta python-datetime

我需要在mysql环境中存储正常运行时间。正常运行时间从几小时到一年以上不等。我正在考虑为MySQL使用DATETIME类型。我正在使用python,并且正常运行时间从

def convertdate(lastrestart):
   # now in datetime
   nowdt=datetime.now()

   # last_restarted in datetime
   lastrestarted_dt=datetime.strptime(lastrestart, "%Y-%m-%d %H:%M:%S")

   # timedelta in datetime! 
   uptimeInDT=nowdt-lastrestarted_dt

   #timedelta in seconds
   secondsUptime=uptimeInDT.seconds

   # string conversion wont work so much for a datetime field.
   print str(uptimeInDT)
Run Code Online (Sandbox Code Playgroud)

这是完成这项工作的最好方法吗?我可以使用其他解决方案吗?mysql中的SEC_TO_TIME()的范围较小,无法正常工作,并且从sec到datetime没有任何功能。也许我应该节省时间并习惯这一点。谢谢

pil*_*row 5

MySQL 不提供一流的 INTERVAL 类型,该类型将是 python 的timedelta.

因此,为了存储增量,我建议简单地将差值以秒为单位存储在一个足够大的整数字段中,以容纳您的最大预期值。

“这么多天、小时、分钟等”显示增量 格式 - 这就是您似乎正在寻找的 - 我建议在客户端代码中这样做。 对象字符串化很好,或者您可以根据需要滚动自己的格式化程序。timedelta

如果您搜索尝试格式化间隔(“X 秒前”或“X 周前”)的人,您将看到相关的方法和工具包。