CREATE TABLE task
(`taskid` int, `description` varchar(255),
PRIMARY KEY (`taskid`))
;
INSERT INTO task
(`taskid`, `description`)
VALUES
(1, 'Platform for building enterprise provisioning solutions'),
(2,'Full-featured access management'),
(3, 'Robust LDAP server for Java')
;
CREATE TABLE worktime
(`taskid` int, `user` varchar(7), `startwork` datetime , `endwork` datetime)
;
INSERT INTO worktime
(`taskid`, `user`, `startwork`, `endwork`)
VALUES
(1, 'dirk', '2015-07-26 15:19:46', '2015-07-26 15:20:46'),
(1, 'dirk', '2015-07-26 17:19:46', '2015-07-26 18:11:46'),
(2, 'dirk', '2011-02-26 11:19:46', '2011-02-26 12:11:46'),
(2, 'tim', '2011-02-26 11:19:46', '2011-02-26 12:11:46')
;
我想要的是:查找用户在任务上花费的总时间。
例如,对于任务 1 和用户 dirk,这将是任务 1 的 01:01 小时:分钟。
我怎样才能创建这个视图?
最好将 a 添加
userID
到您的worketime
表而不是User
并且名称user
是保留字,因此不要使用它。你要找的视图是这样制作的TIMEDIFF()
返回一个时间值并将其转换为秒然后再转换回时间,因为SUM()
函数在使用时间数据类型时不会返回正确的结果。