복붙노트

[SQL] SQL을 사용하여 입력 한 시간의 합을 계산

SQL

SQL을 사용하여 입력 한 시간의 합을 계산

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

해결법

  1. ==============================

    1.

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

    이것은 나를 위해 일했다. 도움이 되었기를 바랍니다.

  2. ==============================

    2.MYSQL 데이터베이스에서 시간의 합계를 얻기 위해 작업 코드 : 100 %

    MYSQL 데이터베이스에서 시간의 합계를 얻기 위해 작업 코드 : 100 %

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

    시도하고 확인. 감사.

  3. ==============================

    3.timeSpent 컬럼의 데이터 유형은 TIME 인 경우 다음과 같은 쿼리를 사용할 수 있어야합니다 :

    timeSpent 컬럼의 데이터 유형은 TIME 인 경우 다음과 같은 쿼리를 사용할 수 있어야합니다 :

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

    그런 경우가 아닌 경우, 당신은 시간 데이터 형식으로 변환하는 캐스트를 사용 할 수 있습니다. 이런 식으로 뭔가 작업을해야합니다 :

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

    4.MySQL은, 당신은 시간 간격을 얻기 위해 이런 짓을 할 것이다 :

    MySQL은, 당신은 시간 간격을 얻기 위해 이런 짓을 할 것이다 :

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

    그런 다음 시간 간격을 추가, 당신은 할 것이다 :

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

    당신의 TimeUntil 실제로 TimeFrom보다 낮은 때문에 이러한 계산이 잘못 결국 그렇게 불행하게도, 당신은, 날짜를 저장하거나 24 시간을 사용하지 않는 것입니다.

    또 다른 방법은 () TIMESTAMPDIFF를 사용 초로 시간 간격을 저장하기 위해 (위의 문제를 밖으로 정렬 가정) 될 것이다 :

    UPDATE my_table SET time_spent=TIMESTAMPDIFF(start, end));
    SELECT SEC_TO_TIME(SUM(time_spent)) FROM my_table;
    
  5. from https://stackoverflow.com/questions/3054123/calculate-a-sum-of-type-time-using-sql by cc-by-sa and MIT license