2012-04-09 3 views
4

PHP를 사용하여이 작업을 수행 할 수 있지만 쿼리를 사용하여 두 번 차이를 계산하는 방법이 있는지 알고 싶습니까? 아래 쿼리를 시도했지만 시간 차이에 대해 NULL이 반환됩니다.mysql - 쿼리에서 두 번 간의 차이를 계산합니다.

| 2012-04-05 09:23:24 | 2012-04-05 09:25:33 |  00:02:09 | 

내가 시도 :

SELECT 
    FROM_UNIXTIME(created) AS created, 
    FROM_UNIXTIME(changed) AS changed, 
    TIMEDIFF (changed, created)/60 AS timediff 
FROM content 
    WHERE id = 45; 

굴복 어느 내가 반환하는 방법을 알아낼 싶어

| created | changed | 
+------------+------------+ 
| 1333643004 | 1333643133 | 

:로

내 테이블의 데이터가 저장됩니다

| 2012-04-05 09:23:24 | 2012-04-05 09:25:33 | NULL | 

답변

8

TIMEDIFF()이 반환하는 결과는 TIME 값에 허용되는 범위로 제한됩니다. 또는 두 가지 모두 정수를 반환하는 TIMESTAMPDIFF()UNIX_TIMESTAMP() 함수 중 하나를 사용할 수 있습니다.

두 열 (정수를 반환 함)에 UNIX_TIMESTAMP()을 호출 한 다음이를 뺍니다. 이렇게하면 쿼리 나 PHP에서 변환 할 수있는 정수를 얻을 수 있습니다. 내가 볼

SELECT 
    UNIX_TIMESTAMP(created) AS created, 
    UNIX_TIMESTAMP(changed) AS changed, 
    changed-created AS difference 
FROM content 
    WHERE id = 45; 

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

+0

은 ... 응답 및 설명 주셔서 감사합니다! –

관련 문제