我有一个名为date_start
的字段和一个名为date_end
的字段的表格。字段的值是这样的
year-month-day hours:minutes:seconds
我需要找出:
我还是有点新鲜,老实说也不知道从哪里开始。
感谢您的帮助。
答案 0 :(得分:1)
假设MySQL中的字段是TIMESTAMP或DATETIME,我会使用两个MySQL查询。一个用于任务特定结果。
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
答案 1 :(得分:0)
从这里开始:strtotime()此函数将您的时间转换为表示自1970年以来的秒数的数字。然后您可以从另一个中减去一个以查找经过的秒数。
答案 2 :(得分:0)
我没有测试过,但这样可行:
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
您将获得完成的平均秒数
答案 3 :(得分:0)
你说你有一个表格,其中包含以这种格式存储的日期:年 - 月 - 日时:分:秒。
您确定没有使用日期时间字段吗?如果是这样,那解决了一半的问题。日期时间字段以这种方式表示。
答案 4 :(得分:0)
这将有效:
$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);