MySQL存储持续时间 - 数据类型?

Jud*_*uds 28 mysql time types duration

我需要计算用户在网站上花费的时间.注销时间和登录时间之间的区别给我一些类似"X先生花了4小时43分钟在线"的内容.所以为了存储4小时43分钟我声明它是这样的: duration时间不是空的

这是有效的还是更好的存储方式?我需要存储在DB中,因为我有其他计算我需要将其用于+其他用例.

Rie*_*sio 43

将其存储为整数秒将是最佳方式.

  • UPDATE会是干净和简单-即duration = duration + $increment
  • 正如崔斯特瑞姆所指出的,使用该领域存在局限性TIME - 例如" TIME价值可能从" '-838:59:59''838:59:59'"
  • 日/小时/分钟/秒显示格式不会被硬编码.
  • 使用整数"秒数"字段时,执行其他计算几乎肯定会更清楚.

  • 我绝对会选择`TIME`.我想不出有人连续34天在线消费.如果是这样,我准备让这种罕见的情况发生错误.`UPDATE`语句可以使用`ADDTIME()`轻松完成.使用此功能,您还可以添加30分23秒,而无需将其转换为秒.没有什么是硬编码的,你可以随时做`TIME_TO_SEC()` - 如果你真的需要(我怀疑). (2认同)