数据库是这样的
id ,开启时间(以秒为单位),关闭时间(以秒为单位),使用时长(秒为单位),日期
。
之前我想得到 每个个小时的使用 的使用时长
for
{
select Sum(useTime) from table where openTime = 3600 * i and colseTime = 3600 * i+1
}
这样处理的确能得到一部分 每小时的使用时长。 可是在某些情况下取不到值
比如 在4.58 - 5.01 这样的的数据并不能满足 查询语句的要求 。 也就查不到这样的值。
正确的逻辑应该是 4.58 到 5.00 记在 16.00 这条数据的使用时间内 。 5.00 - 5.01 纪录在17的数据内
建议精确到毫秒进行计算
精准计算时间的话还是使用毫秒好一点,另外那些运算建议不要放在sql语句当中,使用程序计算完成之后直接拼接在sql里面,这样性能好一些