gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:05:27 26 4
gpt4 key购买 nike

我需要在 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)

这是完成这项工作的最佳方式吗?我应该使用其他解决方案吗?mysql 中的SEC_TO_TIME() 范围较小,不会起作用,从sec 到datetime 没有函数。也许我应该节省时间并习惯它。谢谢

最佳答案

MySQL 不提供一流的 INTERVAL 类型,该类型将是 python 的 timedelta 的 SQL 模拟。

因此,要存储 delta,我建议只需将差值(以秒为单位)存储在一个足够大的整数字段中,以容纳您的最大预期值。

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

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

关于python - 在 mysql 中存储 python timedelta 值的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com