2012-12-02 5 views

답변

2

당신은 아마

FLOOR(HOUR(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30'))/24), ' days ', 
+0

부끄러움처럼 일했습니다. 고마워요. – user1854392

+0

문제가없는 경우 대답을 수락하는 것을 잊지 마십시오. – bear

+0

이 작업을 수행하지 못했습니다. mysql 5.6. mod 함수는 쉼표 (,) 구분 기호를 사용하며 (/)는 사용하지 않습니다. IF에는 ELSE 절이 없습니다. – dlink

0

당신의 start_timeend_time이 날짜 형식이 다음 TIMEDIFF 기능을 사용하여 원하는 DATE_FORMAT을 적용 할 경우, Timediff

IF (MOD(HOUR(TIME)/24)) > 24, 
    SELECT CONCAT(
    FLOOR(HOUR(TIME)/24), ' days ', 
    MOD(HOUR(TIME), 24), ' hours ', 
    MINUTE(TIME), ' minutes') 
) 

하고 싶어.

select DATE_FORMAT(TIMEDIFF('2012:01:01 00:00:00', '2012:01:01 00:00:00.000001'), 
        '%d: %H: %m'); 
0

이 나를 위해 일한 :

select 
    o.id, 
    o.created, 
    o.complete_date, 
    concat(timestampdiff(day, o.created, o.complete_date), 
      'd ', 
      lpad(
      mod(timestampdiff(hour, o.created, o.complete_date), 24), 
      2, '0'), 
      'h' 
    ) as time_to_complete, 
from 
    orders o 
; 

결과 :

+---------+---------------------+---------------------+------------------+ 
| id  | created    | complete_date  | time_to_complete | 
+---------+---------------------+---------------------+------------------+ 
| 2393721 | 2018-02-20 00:01:44 | 2018-02-21 02:32:08 | 1d 02h   | 
| 2393722 | 2018-02-20 00:02:56 | 2018-02-21 00:32:08 | 1d 00h   | 
| 2393723 | 2018-02-20 00:04:12 | 2018-02-20 21:32:07 | 0d 21h   | 
| 2393724 | 2018-02-20 00:04:50 | 2018-02-20 23:47:05 | 0d 23h   | 
| 2393725 | 2018-02-20 00:07:07 | 2018-02-20 17:32:03 | 0d 17h   | 
| 2393726 | 2018-02-20 00:13:41 | 2018-02-21 00:32:08 | 1d 00h   | 
| 2393727 | 2018-02-20 00:14:25 | 2018-02-21 00:32:08 | 1d 00h   | 
| 2393728 | 2018-02-20 00:16:47 | 2018-02-20 23:32:04 | 0d 23h   | 
| 2393729 | 2018-02-20 00:17:19 | 2018-02-20 23:47:09 | 0d 23h   | 
| 2393730 | 2018-02-20 00:17:59 | 2018-02-21 01:32:08 | 1d 01h   | 
+---------+---------------------+---------------------+------------------+ 
관련 문제