我想显示17.5
而不是17:30:00
。怎么做到这一点?我搜索过但没有找到。
我想在我的查询中这样做:
SELECT o.*, u.* ,p.* ,
SEC_TO_TIME(SUM(TIME_TO_SEC(DATE_FORMAT(STR_TO_DATE(dateto, '%m/%d/%y %H:%i:%s'), '%Y-%m-%d %H:%i:%s')) - TIME_TO_SEC(DATE_FORMAT(STR_TO_DATE(datefrom, '%m/%d/%y %H:%i:%s'), '%Y-%m-%d %H:%i:%s')))) AS totalHrs,
number_format((select SEC_TO_TIME(SUM(TIME_TO_SEC(DATE_FORMAT(STR_TO_DATE(dateto, '%m/%d/%y %H:%i:%s'), '%Y-%m-%d %H:%i:%s')) - TIME_TO_SEC(DATE_FORMAT(STR_TO_DATE(datefrom, '%m/%d/%y %H:%i:%s'), '%Y-%m-%d %H:%i:%s')))) FROM overtime WHERE approve_by=0)) AS grandTotal
FROM overtime AS o, users AS u, position AS p
WHERE o.user_id=u.user_id and u.p_id=p.p_id and o.approve_by=0
GROUP BY p.p_id
ORDER BY p.position_name ASC
答案 0 :(得分:6)
如果你有时间价值,那么这样的话:
select time_to_sec(timeval) / (60 * 60)
如果您希望它为1位小数,则转换为小数:
select cast(time_to_sec(timeval) / (60 * 60) as decimal(10, 1))
这与您的查询之间的关系并不明显,这似乎是一个不引人注意的问题。