将 TIMESTAMPDIFF() 插入到同一数据库表的现有列中



我正在尝试计算完成后完成工单所需的总时间。 我的数据库中有一个tickets表,记录每个票证的信息,主键是ticket_id

当我的表单提交时,我的 php 代码中的 mysql 查询将该票证 ID 在数据库中的completion_time设置为"now((:

UPDATE tickets 
SET completion_time = NOW() 
WHERE ticket_id = :ticket_id;

我要执行的下一个查询是计算total_time并将其存储在tickets表中相对于ticket_id的现有列中。creation_timecompletion_timeTIMESTAMP数据类型,total_timeINT数据类型,因为我想以分钟为单位返回整数值。

我试过这个:

UPDATE tickets 
SET total_time = TIMESTAMPDIFF(minute,@completion_time,@creation_time) 
WHERE ticket_id = :ticket_id;

我不确定我是否必须在单独的查询中执行这两个代码片段;截至目前,它们属于同一个变量$sql并在 php 代码中的同一查询中执行。

您可以在插入完成时间的同一查询中插入时间戳差异:

UPDATE tickets SET completion_time = NOW(), total_time = TIMESTAMPDIFF(NOW(), creation_time) WHERE ticket_id = :ticket_id

最新更新