source

MySQL의 두 시간 필드와의 차이(분)

gigabyte 2022. 10. 20. 21:54
반응형

MySQL의 두 시간 필드와의 차이(분)

MySQL 데이터베이스를 'time' 필드로 설정했습니다.

HH가 아닙니다.전통적인 의미의 MM은 이벤트가 발생한 시간이기 때문에 5:45의 값을 가진 이벤트가 경기 시작 5분 45초를 남겨두고 발생한 것입니다.12분 25초를 남겨두고 12:25가 발생하였습니다.

총 경과시간을 알 수 있으면 좋으니 12시 25분에 발생한 이벤트와 다음 이벤트가 5시 45분에 발생한 경우 차액인 6시 40분을 알 수 있으면 좋겠습니다.그럼 소수점, 이 경우는 6.67로 표현하겠습니다.

이게 가능합니까?

잘 부탁드립니다.

저는 이 방법이 효과가 있었습니다.

TIMESTAMPDIFF(MINUTE, T0.created, T0.modified)

참고 자료: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_timestampdiff

그냥 사용하다

TIMEDIFF(fromtime, totime):

SELECT TIMEDIFF("12:25", "5:45");

소수점이 필요한 경우 다음을 사용하십시오.TIME_TO_SEC()/3600(초수를 넘겼다고 가정하지만 시간을 저장하는 형식이 모호하여 SQL에서는 HH로 해석할 수 있습니다.MM - 이 문제를 해결할 수 있습니다.CONCAT("00:",MinuteSecondField)아마도?) - 그럼 사용할 수 있습니다.TIME_TO_SEC()/60(어느쪽이 더 맞습니까?

나도 비슷한 게 필요했어.두 가지 유용한 기능:TIME_TO_SECSUBTIME.

예: 시간 필드가 일반 HH인 경우:그럼 MM회

SELECT (TIME_TO_SEC(end_time) - TIME_TO_SEC(start_time))/60 AS `minutes` 

당신의 경우, 제가 이해하기로는, 시대가 거꾸로 되어 있습니다. 12:00<6:00따라서 end_time과 start_time을 교환해야 합니다.

출력을 HH로 하고 싶은 경우:할 수 있는 SS

SELECT SUBTIME(end_time, start_time)

UNIX_TIMESTamp(event1)-UNIX_TIMESTamp(event2)를 사용했습니다.이것에 의해, 이벤트의 간격을 초단위로 설정할 수 있습니다.60.0으로 나누면 요구에 따라 소수점이 나옵니다.이 솔루션에서는 열이 날짜 호환 값이라고 가정합니다.TIMESTAMP일 경우 매우 빠르게 동작합니다.

업데이트: 이 솔루션은 타임스탬프 데이터 유형에서만 작동하며, 원래 질문에서와 같은 시간 데이터 유형은 작동하지 않습니다.

언급URL : https://stackoverflow.com/questions/5070111/difference-in-minutes-from-two-time-fields-in-mysql

반응형