programing

sql을 사용하여 유형 시간의 합을 계산합니다.

jooyons 2023. 9. 7. 21:40
반응형

sql을 사용하여 유형 시간의 합을 계산합니다.

다음 형식의 "timeSpent"라는 내 대장의 총 시간을 계산하는 방법:SQL에서 HH:mm?MySQL을 사용하고 있습니다.

제 칼럼의 종류는 시간입니다.

이런 구조를 가지고 있습니다.

10:00:00 12:00 02:00 정도부터시간 08:00:00 09:15:00 01:15:00까지소요시간
총 시간 03:15:00
SELECT  SEC_TO_TIME( SUM( TIME_TO_SEC( `timeSpent` ) ) ) AS timeSum  
FROM YourTableName

100% 작동 코드로 MYSQL Database에서 시간 초과:

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

확인해 보세요.감사해요.

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;

데이터 유형이 다음과 같은 경우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

언급URL : https://stackoverflow.com/questions/67770218/the-sum-does-not-match-use-sql-query-on-mariadb

반응형