对mysql time_to_sec()函数的误解

本文探讨了MySQL中time_to_sec()函数仅计算时间部分秒数的特点,并指出这可能导致计算响应时间时出现错误。通过一个具体例子说明了如何使用UNIX_TIMESTAMP()函数来正确计算两个时间点之间的秒数差。

    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年以来的秒数。用这个函数才能正确的计算两个时间点的秒数差。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bruce128

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值