вставить TIMESTAMPDIFF () в существующий столбец в той же таблице базы данных - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь подсчитать общее время, необходимое для оформления билета по завершении. У меня есть таблица tickets в моей базе данных, в которой записывается информация для каждого тикета с первичным ключом ticket_id.

Когда моя форма отправляется, запрос mysql в моих наборах кодов php time_time в базе данных для этого идентификатора заявки в виде `now ():

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

, следующий запрос, который я хочу выполнить, вычисляет total_time и сохраняет его в существующем столбце таблицы tickets относительно до ticket_id. creation_time и completion_time - это типы данных TIMESTAMP, а total_time - это тип данных INT, так как я хочу вернуть время в минутах как целочисленное значение.

Я пробовал это:

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

Я не уверен, должен ли я выполнять два фрагмента кода в отдельных запросах; на данный момент они принадлежат одной переменной $sql и выполняются в одном запросе в коде php.

1 Ответ

1 голос
/ 27 января 2020

Вы можете вставить разность отметок времени в тот же запрос, что и вставка времени завершения:

UPDATE tickets SET completion_time = NOW(), total_time = TIMESTAMPDIFF(NOW(), creation_time) WHERE ticket_id = :ticket_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...