SELECT
r.in_time,
r.out_time,
CONCAT(
FLOOR(TIMESTAMPDIFF(SECOND, r.in_time, r.out_time) / 86400), '天',
FLOOR((TIMESTAMPDIFF(SECOND, r.in_time, r.out_time) % 86400)/3600), '时',
FLOOR((TIMESTAMPDIFF(SECOND,r.in_time, r.out_time) % 3600)/60), '分',
(TIMESTAMPDIFF(SECOND, r.in_time, r.out_time) % 60), '秒'
) AS timeDifference,
FROM
pay_record r
WHERE pay_status = 1
这里,我们使用TIMESTAMPDIFF
函数来计算r.in_time
和r.out_time
之间的时间差(以秒为单位)。然后我们通过将这个差值除以86400(一天的秒数)并使用FLOOR
函数来获取完整的天数,时、分、同理。秒这部分计算了时间差除以一分钟的秒数后剩余的部分,直接得到了秒钟数。
总结一下,这个SQL查询从pay_record表中选取了in_time、out_time以及它们之间的时间差(以天、小时、分钟和秒为单位表示)。时间差是通过CONCAT函数连接的多个字符串形式返回的,得到的结果就是字符串类型的:0天1时0分8秒。