对mysql time_to_sec()函数的误解
time_to_sec()函数仅仅计算了时间部分的秒数,没有把年月日的秒数计算进去。因为这个特点,导致了我程序的一个bug。 这段代码本来想统计客服的响应时间。但是碰到这种极品数据的时候,例如, responseTime:2013-1-8 00:00:01 ,firstMsgTime: 2013-1-7 23:59:50,程序就返回负数了。SELECT service as pi
·
time_to_sec()函数仅仅计算了时间部分的秒数,没有把年月日的秒数计算进去。因为这个特点,导致了我程序的一个bug。
这段代码本来想统计客服的响应时间。但是碰到这种极品数据的时候,例如, responseTime:2013-1-8 00:00:01 ,firstMsgTime: 2013-1-7 23:59:50,程序就返回负数了。
SELECT service as pin, AVG(time_to_sec(responseTime) - time_to_sec(firstMsgTime)) as num
FROM(
SELECT service, responseTime, firstMsgTime
FROM analysis_session
WHERE
responseTime is not NULL
AND created >= DATE_ADD(DATE_FORMAT(now(),'%Y-%m-%d'),INTERVAL -1 DAY)
AND created < DATE_FORMAT(now() ,'%Y-%m-%d')
GROUP BY cid
) t
GROUP BY service
后来我换了一种mysql时间函数——UNIX_TIMESTAMP(),这个函数返回的是自1970年以来的秒数。用这个函数才能正确的计算两个时间点的秒数差。更多推荐
已为社区贡献3条内容
所有评论(0)