我需要计算用户在网站上花费的时间。注销时间和登录时间之间的区别给我一些类似“X先生花了4小时43分钟在线”的内容。所以为了存储4小时43分钟我宣布它是这样的:
duration
时间非空
这是有效还是更好的存储方式?我需要存储在DB中,因为我还有其他计算需要将其用于+其他用例。
答案 0 :(得分:39)
将其存储为整数秒将是最好的方法。
UPDATE
将简洁明了 - 即duration = duration + $increment
TIME
字段有limitations - 例如“TIME
值的范围可以从'-838:59:59'
到'838:59:59'
”答案 1 :(得分:0)
我不会使用时间,因为你将限制在24小时内。最简单的方法是以分钟(或秒为单位)存储整数,具体取决于您需要的分辨率。
答案 2 :(得分:-1)
考虑将两个值都存储为UNIX-epoch-delta。
我通常更喜欢使用带符号的(64b)bigint(用于第二解析度)或(带符号的)(64b)双精度(如果需要小数秒),或带符号的(32b)int(如果缩小至分钟)或每小时)。
使该单位在列名中明确显示,例如后缀为“ _epoch_minutely”,例如:“ started_epoch_minutely”,“ finished_epoch_minutely”。