복붙노트

[SQL] 시간 반올림 두 날짜 사이의 차이를 가져 오는 방법

SQL

시간 반올림 두 날짜 사이의 차이를 가져 오는 방법

나는 다음 예에서 얻을 싶은 것이 설명합니다 :

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

TIMEDIFF ()를 사용하여, 우리는 결과로 2를 얻을. 이 방법은, 그것은 왼쪽으로 50 분 고려하지 않고있다.

이 경우에는, 제가 좀하고 싶습니다 것은 : 50 (분) / 60 = 0.83 기간. 따라서, 결과는 2.83 아닌 2이어야한다.

해결법

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

    1.

    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 | 
    +-----------------------------------------------------------------------------+
    
  2. ==============================

    2.나는 더 완전한 대답은 생각

    나는 더 완전한 대답은 생각

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

    이것은 당신이 원하는 형식으로보고 싶은 등 시간, 분, 초를 볼 수 있습니다 ...

    TIME_FORMAT에 대한 자세한 정보 : http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_time-format

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

    3.시간의 정확한 숫자에 대한 사용 TIMESTAMPDIFF :

    시간의 정확한 숫자에 대한 사용 TIMESTAMPDIFF :

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

    4.다음을 시도해 볼 수도 있습니다 :

    다음을 시도해 볼 수도 있습니다 :

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

    5.그것의 아주 오래된 스레드,하지만 당신은 또한 TIMESTAMPDIFF을 시도하고 규정과 같은 분, 시간 (초)을 제공 할 수 있습니다.

    그것의 아주 오래된 스레드,하지만 당신은 또한 TIMESTAMPDIFF을 시도하고 규정과 같은 분, 시간 (초)을 제공 할 수 있습니다.

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

  6. ==============================

    6.타임 스탬프 사이의 시간 수를 얻을 MYSQL :

    타임 스탬프 사이의 시간 수를 얻을 MYSQL :

    select timestampdiff(second,'2010-09-01 00:10:00', '2010-09-01 03:00:00')/3600;
    
  7. ==============================

    7.당신이 타임 스탬프를 사용하는 경우,이 SQL을 사용하여 MySQL의에서 해결책이 될 수 있습니다.

    당신이 타임 스탬프를 사용하는 경우,이 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)
    
  8. ==============================

    8.UNIX_TIMESTAMP 사용 :

    UNIX_TIMESTAMP 사용 :

    SELECT (UNIX_TIMESTAMP(End)-UNIX_TIMESTAMP(Start))/3600) 
    AS Difference_in_hours 
    FROM Table
    
  9. from https://stackoverflow.com/questions/3621440/how-to-get-the-difference-between-two-dates-rounded-to-hours by cc-by-sa and MIT license