我需要在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'只更新,當你設置你的數據庫表。默認情況下它不會改變,除非你自己這樣做。 –