我有一张表格,其中有一个叫做date_start
的字段和一个叫做date_end
的字段。这两个字段的值如下所示:
year-month-day hours:minutes:seconds
我需要找出:
- 这个人完成任务需要多长时间。
- 所有人完成任务的平均用时。
我还是有点新手,实话说我不知道从哪里开始。
感谢你的帮助。
SELECT UNIX_TIMESTAMP(date_end) - UNIX_TIMESTAMP(date_start) AS seconds_to_complete_task
FROM a
一个用于计算平均结果的函数。
SELECT AVG(UNIX_TIMESTAMP(date_end)-UNIX_TIMESTAMP(date_start)) AS avg_seconds_to_complete_task
FROM a
这样做会起作用:
$total_time_worked = 0;
foreach( $db_records as $time_entry )
{
$start = strtotime($time_entry['date_start']);
$end = strtotime($time_entry['date_end']);
// Time worked (in seconds)
$worked = $end-$start;
// Increment the total
$total_time_worked += $worked;
}
// Get the average time worked (in seconds)
$average = $total_time_worked/count($db_records);
SELECT (UNIX_TIMESTAMP(date_end) - UNIX_TIMESTAMP(date_start)) AS personal_complete_time,
AVG(UNIX_TIMESTAMP(date_end) - UNIX_TIMESTAMP(date_start)) AS total_average
FROM mytable
您将获得完成所需的平均秒数
你说你有一个以年-月-日 时:分:秒这种格式存储日期的表。
你确定你没有使用datetime字段吗?如果是这样,那么就解决了你问题的一半。Datetime字段就是用这种方式表示的。
从这里开始:strtotime()函数将把你的时间转换为一个数字,表示自1970年以来经过的秒数。然后你可以相减得到经过的秒数。