【发布时间】:2013-11-29 01:53:09
【问题描述】:
我正在尝试编写一个 MySQL 函数,该函数使我能够汇总工作人员在设定的时间段内完成的工作量,即 1 天、1 周、1 个月等。完成的每项工作都会生成 1 个 ID 条目在数据库中。
条目的日期设置为时间戳。
我的问题是我不清楚如何对数据库进行多次调用以检查在设定的时间戳期间创建了多少条目。
下面是数据库表
CREATE TABLE staffwork(
staff_id MEDIUMINT UNSIGNED NOT NULL,
id_of_work_inserted MEDIUMINT UNSIGNED NOT NULL,
job_id MEDIUMINT UNSIGNED NOT NULL,
data_table VARCHAR (65) NOT NULL,
entrytime int(11) NOT NULL,
INDEX message (staff_id)
);
以下是将数据放入表中的查询,即时间戳:
INSERT INTO staffwork
(staff_id, job_id, id_of_work_inserted, data_table, entrytime )
VALUES ('$staff_id', '$job_id', '$id_of_job', '$data_table', UNIX_TIMESTAMP(now()) )";
下面是我的 SQL 函数:
函数 statsForEmployeesWork ($staff_id) { 全局 $dbc;
$select = " SELECT
COUNT(job_id) AS totalWorkDone,
COUNT(job_id) AS oneDaysWorkDone,
COUNT(job_id) AS oneWeekWorkDone,
COUNT(job_id) AS oneMonthWorkDone
";
$from = " FROM
staffwork
";
$where = " WHERE
staff_id = '$staff_id
AND
entrytime >= now() - interval '1 day'
AND
entrytime >= now() - interval '1 week'
AND
entrytime >= now() - interval '1 month '";
$query = $select.$from. $where;
$result = mysqli_query ($dbc, $query)
return $result ;
}
我非常感谢您对此的帮助和建议。
【问题讨论】:
标签: mysql datetime unix-timestamp