您好,我在PHP脚本中有以下MySQL查询
$query_players = "SELECT (current_timestamp -`Online_since`) AS `Since` FROM `streams` WHERE `Team` = $temp AND `Online` = 1 ORDER BY `Viewers` DESC";
然后我有:
$since = round($obj_players->Since /3600);
可以想象,$ since应该包含播放器已经在几小时内上线的时间。奇怪的是,它有错误的结果。就像MySQL中的时间过得快:P
例如,大约15分钟后,它已经显示“自1小时以来处于联机状态”,另外大约30分钟后,它已经显示了2小时,依此类推。
有人知道怎么了吗?也许current_timestamps是问题吗?
最佳答案
current_timestamp
并不是真正以秒为单位的。因此,将差异除以3600不会得出小时数,而是一些任意值。
18分钟后的差异是1800
,而round(1800/3600) = round(0.5)
当然是1
。
根据您的实际列类型,使用timediff()
或timestampdiff()
进行计算。