我的任务是为我们服务器的一个游戏模式制作统计数据“查看器”。它一直很好,但我唯一的问题是将播放时间转换为小时:分钟:秒。
制作实际游戏模式的开发者以毫秒为单位存储在MySQL中播放的时间。遗憾的是,许多玩家有足够的时间容易导致整数溢出(用PHP计算)。
现在,我想知道解决这个问题的最简单,最有效的方法是什么。有没有一种方法可以在我不知道的MySQL查询中执行此操作?
答案 0 :(得分:1)
我们假设您有36001316000毫秒:
SET @miliseconds = 36001316000;
SET @s = @miliseconds / 1000;
SET @hours = FLOOR(@s / 3600);
SET @minutes = FLOOR(@s / 60 - @hours * 60);
SET @seconds = ROUND(@s - @hours * 3600 - @minutes * 60);
SELECT @hours, @minutes, @seconds;
这将返回10000小时,21分钟& 56秒。
您将如何存储这些信息取决于您将如何使用它。如果它仅用于提供信息,或者基于PHP的计算,你可以将它存储在varchar中,如果你需要在MySQL中进行基于它的计算,你可以将它存储在3个不同的整数字段中。
答案 1 :(得分:0)
列类型是什么?整数?
将整数更改为无符号整数将使最大数量加倍。
轻松出来:
将该列的表格结构从INT
更改为BIGINT
。
如果已经是BIGINT,则将现有记录除以1000并使用秒
例如:
或者将现有记录除以60000并使用分钟。
$ sql =“更新users
设置time
= time
/ 60000”;