我需要在mysql环境中存储正常运行时间。 正常运行时间可以从几小时到一年以上不等。我正在考虑对mysql使用DATETIME类型。 我使用Python,并从在mysql中存储python timedelta值的最佳方式是什么?
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()有一个较小的范围,不会工作,并且从秒到日期时间没有功能。也许我应该保存秒数并习惯这一点。 谢谢
我不明白。 我并不需要使用时间戳,因为: -Timestamp不能01-01-1970之前保存值(和我需要的范围从00-00-000到XX-XX-0004最大值) - 这不是我“T需要我每次访问时间来更新该字段或已经使用时间戳字段 – asdf
这取决于数据是如何被存储在表中修改行 - 我。每当行被“插入”或“更新”时,'timestamp'总会被更新,这可能是也可能不是所希望的。 编辑:我张贴这种权利@superagio回答后。我同意,你可能希望将'lastrestarted'作为日期时间存储。如果你告诉MySQL'ON UPDATE CURRENT_TIMESTAMP' –
了'TIMESTAMP'只更新,当你设置你的数据库表。默认情况下它不会改变,除非你自己这样做。 –