Подтвердить что ты не робот

Вычислить сумму времени типа с помощью sql

Как подсчитать сумму времен моей колонии, называемую "timeSpent", имеющую этот формат: HH: mm в SQL? Я использую MySQL.

тип моего столбца - это время.

он имеет эту структуру

TimeFrom like  10:00:00           12:00:00     02:00:00
TimeUntil      08:00:00           09:15:00     01:15:00
Time spent      

total time 03:15:00
4b9b3361

Ответ 1

SELECT  SEC_TO_TIME( SUM( TIME_TO_SEC( `timeSpent` ) ) ) AS timeSum  
FROM YourTableName  

Это сработало для меня. Надеюсь, это поможет.

Ответ 2

Если тип данных столбца timeSpent равен TIME, вы можете использовать следующий запрос:

SELECT SUM(timeSpent) 
  FROM YourTableName    -- replace YourTableName with the actual table name

Однако, если это не так, вам может потребоваться использовать трансляцию для преобразования в тип данных TIME. Что-то вроде этого должно работать:

SELECT SUM(timeSpent - CAST('0:0:0' as TIME)) 
  FROM YourTableName    -- replace YourTableName with the actual table name

Ответ 3

В MySQL вы бы сделали что-то подобное, чтобы получить временной интервал:

SELECT TIMEDIFF('08:00:00', '10:00:00');

Затем, чтобы добавить временные интервалы, вы должны:

SELECT ADDTIME('01:00:00', '01:30:00');

К сожалению, вы не храните даты или не используете 24-часовое время, поэтому эти вычисления оказались бы неправильными, так как ваш TimeUntil на самом деле ниже вашего TimeFrom.

Другим подходом было бы (при условии, что вы выбрали вышеупомянутую проблему), чтобы сохранить временные интервалы в секундах, используя TIMESTAMPDIFF():

UPDATE my_table SET time_spent=TIMESTAMPDIFF(start, end));
SELECT SEC_TO_TIME(SUM(time_spent)) FROM my_table;

Ответ 4

100% рабочий код, чтобы получить сумму времени из базы данных MYSQL:

SELECT
SEC_TO_TIME( SUM(time_to_sec(`db`.`tablename`))) 
As timeSum
FROM
`tablename`

Попробуйте и подтвердите. Спасибо.