programing

두 날짜의 차이를 시간으로 반올림하는 방법

goodsources 2022. 9. 5. 23:21
반응형

두 날짜의 차이를 시간으로 반올림하는 방법

다음 예에서는 무엇을 얻을 수 있는지 설명하겠습니다.

'2010-09-01 03:00:00' - '2010-09-01 00:10:00'

사용.TIMEDIFF()그 결과 2가 됩니다.즉, 남은 50분은 고려되지 않습니다.

이 경우 50(분) / 60 = 0.83 주기를 원합니다.따라서 결과는 2가 아니라 2.83이어야 합니다.

select time_to_sec(timediff('2010-09-01 03:00:00', '2010-09-01 00:10:00' )) / 3600;

+-----------------------------------------------------------------------------+
| time_to_sec(timediff('2010-09-01 03:00:00', '2010-09-01 00:10:00' )) / 3600 |
+-----------------------------------------------------------------------------+
|                                                                      2.8333 | 
+-----------------------------------------------------------------------------+

정확한 시간에는 TIMESTAMPDIFF 를 사용합니다.

SELECT 
      b.`Start_Date`, 
      b.`End_Date`, 
      TIMESTAMPDIFF(HOUR, b.`Start_Date`, b.`End_Date`) AS `HOURS` 
FROM my_table b;

더 완벽한 답은

select time_format(timediff(onedateinstring,anotherdateinstring),'%H:%i:%s')

이를 통해 원하는 시간, 분, 초 등을 원하는 형식으로 볼 수 있습니다.

time_format에 대한 자세한 내용은http://http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_time-format 를 참조해 주세요.

다음을 시도할 수 있습니다.

time_format(timediff(max(l.fecha), min(l.fecha) ),'%H:%m') //Hora y minutos

매우 오래된 스레드이지만 TIMESTAMPDIFF를 사용하여 수식자로 MINUTE, HOUR, SEConds를 지정할 수도 있습니다.

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timestampdiff

MySQL은 타임스탬프 간격(시간):

select timestampdiff(second,'2010-09-01 00:10:00', '2010-09-01 03:00:00')/3600;
SELECT ABS(TIME_TO_SEC(TIMEDIFF('2010-09-01 03:00:00', '2010-09-01 00:10:00')) / 3600)

결과: 2.8333

타임스탬프를 사용하는 경우 SQL을 사용하는 MySQL의 솔루션이 될 수 있습니다.

SELECT TIMESTAMPDIFF(HOUR, '2010-11-29 13:13:55', '2010-11-29 13:16:55') as newtable;

| newtable |

7

1 row in set (0.01 sec)

UNIX_TIMESTamp 사용:

SELECT (UNIX_TIMESTAMP(End)-UNIX_TIMESTAMP(Start))/3600
AS Difference_in_hours 
FROM Table

언급URL : https://stackoverflow.com/questions/3621440/how-to-get-the-difference-between-two-dates-rounded-to-hours

반응형