首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >插入当前时间时,如何计算上一次时间和总时间?

插入当前时间时,如何计算上一次时间和总时间?
EN

Stack Overflow用户
提问于 2014-03-06 13:37:39
回答 1查看 164关注 0票数 1

我正在尝试将当前项目工期与项目名称存储在一个表中。它还包括当前持续时间、先前持续时间和总持续时间。

我在表单中输入了项目名称和当前工期并存储到表中,但是当我添加更多项目时,如何计算以前的工期和总工期?

代码语言:javascript
运行
复制
projects_id - int (auto increment)
project - varchar
current_time - int
previous_time - int
total_time - int

首先,我将previous_timetotal_time初始化为0

然后,在插入新行时,我将更新项目名称和当前时间,以前的时间和总时间必须自动计算。

EN

回答 1

Stack Overflow用户

发布于 2014-03-06 15:17:17

您可以考虑的表结构:

代码语言:javascript
运行
复制
mysql> desc project;
+---------------+-------------+------+-----+---------------------+----------------------------+
| Field         | Type        | Null | Key | Default             | Extra                      |
+---------------+-------------+------+-----+---------------------+----------------------------+
| project_id    | int(1)      | NO   | PRI | NULL                | auto_increment             |
| project       | varchar(20) | YES  |     | NULL                |                            |
| current_t     | timestamp   | NO   |     | CURRENT_TIMESTAMP   | on update CURRENT_TIMESTAMP|
| previous_time | timestamp   | NO   |     | 0000-00-00 00:00:00 |                            |
| total_time    | time        | YES  |     | NULL                |                            |
+---------------+-------------+------+-----+---------------------+----------------------------+
5 rows in set (0.01 sec)

样本数据

代码语言:javascript
运行
复制
mysql> select * from project;
+------------+---------+---------------------+---------------------+------------+
| project_id | project | current_t           | previous_time       | total_time |
+------------+---------+---------------------+---------------------+------------+
|          1 | test    | 2014-03-06 12:36:34 | 2014-03-06 10:27:19 | 00:00:00   |
+------------+---------+---------------------+---------------------+------------+
1 row in set (0.00 sec)

SQL来执行您要查找的更新:

代码语言:javascript
运行
复制
REPLACE INTO project (project_id,previous_time,total_time) 
SELECT project_id,current_t,total_time + TIMEDIFF(NOW(),current_t) 
FROM project 
WHERE project_id = 1

更新表:

代码语言:javascript
运行
复制
mysql> select * from project;
+------------+---------+---------------------+---------------------+------------+
| project_id | project | current_t           | previous_time       | total_time |
+------------+---------+---------------------+---------------------+------------+
|          1 | NULL    | 2014-03-06 12:41:22 | 2014-03-06 12:36:34 | 00:04:48   |
+------------+---------+---------------------+---------------------+------------+
1 row in set (0.00 sec)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22215916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档