Php 插入当前时间时,如何计算上一次时间和总时间?
我正在尝试将当前项目工期和项目名称存储在表中。也包括当前持续时间、上一个持续时间和总持续时间 我正在表单中输入项目名称和当前工期,并将其存储到表中,但在添加更多项目时,如何计算上一个工期和总工期Php 插入当前时间时,如何计算上一次时间和总时间?,php,mysql,datetime,Php,Mysql,Datetime,我正在尝试将当前项目工期和项目名称存储在表中。也包括当前持续时间、上一个持续时间和总持续时间 我正在表单中输入项目名称和当前工期,并将其存储到表中,但在添加更多项目时,如何计算上一个工期和总工期 projects_id - int (auto increment) project - varchar current_time - int previous_time - int total_time - int 首先,我将把上一次时间和总时间初始化为0 然后,在插入新行时,我将更新项目名称和当前
projects_id - int (auto increment)
project - varchar
current_time - int
previous_time - int
total_time - int
首先,我将把上一次时间
和总时间
初始化为0
然后,在插入新行时,我将更新项目名称和当前时间,必须自动计算上一次的时间和总时间。您可以考虑的表格结构:
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)
样本数据
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来执行您正在查找的更新:
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
更新表:
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)
显示您的表格说明。您能发布一个具有预期输出的示例数据集吗?@Ravinder我已经用表格更新了问题description@NishantShrivastava如果我添加项目名称和当前时间,比如样本和8(小时),它将像样本8小时一样存储。然后,下次如果我将当前时间添加到同一项目中,则必须将前一时间添加到当前时间
current\u TIMESTAMP DEFAULT current\u TIMESTAMP ON UPDATE current\u TIMESTAMP
上,同时将previous\u time
切换到DATETIME
或TIMESTAMP
,并根据这两个值更新总时间。事实上,您甚至不需要总时间,因为您可以在查询过程中动态地执行该操作。您可以检查是否需要自动更新当前\u t。如果不希望,请从当前\t字段中删除“更新当前\u时间戳”属性。。。并相应地在replace查询中添加位。@Prix感谢您的详细解释。。我设置了数据库表,但不知道php插入syntax@user3239311错了人,这是尼桑的解释。哦,sry@NishantShrivastava非常感谢你。你能告诉我php代码的示例吗?@Prix无论如何,再次感谢你。我仍然无法使用它。