由于睡眠研究的需要,需要计算睡觉和起床之间的中点时间。所谓中点时间就是两个时间中最中心的一个时间,例如23:00与7:00的中点是3:00。怎么求呢,思路很简单,将两个时间变成秒然后求其差,除以2,然后加到前面一个时间,或者让后面一个时间减去这个。
因为这个时间是由数据库中得到的varchar,所以需要用到str_to_date这个函数将其变成time类的时间。下面就可以进行time类型之间的计算了,由于这个时间并没有带日期,所以unix_timestamp,datediff,date_add这种函数都没有用到,用到的是addtime,subtime,sec_to_time,time_to_sec等函数。
过程如下:
delimiter &&
create procedure score5 (in tname varchar(300),out a time,out b time,out c time,out d time,out e time,out f time,out g time,out h time)
begin
SET @sqlcmd = CONCAT('select