我需要计算用户在网站上花费的时间。注销时间和登录时间之间的差异给了我类似“X先生在网上花了4小时43分钟”这样的信息。所以为了存储 4 小时 43 分钟,我这样声明:
duration
time NOT NULL
这是有效的还是更好的存储方式?我需要存储在数据库中,因为我需要将其用于 + 其他用例的其他计算。
将其存储为整数秒将是最好的方法。
UPDATE
将是干净和简单的 - 即duration = duration + $increment
TIME
TIME
'-838:59:59'
'838:59:59'
我不会使用时间,因为您将被限制为 24 小时。最简单的方法是以分钟为单位存储一个整数(或秒,具体取决于您需要的分辨率)。
考虑将这两个值存储为 UNIX-epoch-delta。
我通常更喜欢使用有符号(64b)bigint(用于第二分辨率),或(有符号)(64b)双精度(如果需要小数秒),或有符号(32b)整数(如果缩小到分钟或小时) .
在列的名称中明确表示单位,例如使用“_epoch_minutely”之类的后缀,例如:“started_epoch_minutely”、“finished_epoch_minutely”。