2012-06-07 3 views
10

나는 2 명의 사용자 사이의 시간차를 얻으려고하고 있는데, 시간 차이가 필요합니다.두 날짜 사이의 시차 (시간)를 얻는 방법

DATEDIFF 기능을 사용하려고했지만 잘못되었습니다.

SELECT DATEDIFF(*, 
(SELECT max(u1.time_c) 
FROM users u) 
, 
(SELECT max(u2.time_c) 
FROM users u2) 
+2

를? 그들의 시간대를 언급하고 있습니까? 또는 다른 것? 기존 코드가 "* wrong *"라고 말했지만 그 코드의 잘못된 점은 말하지 않습니다. 추측을해야합니까? (내 생각에 [DATEDIFF()'] (http://dev.mysql.com/doc/en/date-and-time-functions.html#function_datediff) 함수는 * 일 *의 차이를 반환합니다. * hours *; 그리고 3 가지가 아니라 2 가지 인자 만 취하지 만, * 모든 것은 틀린가?). – eggyal

+0

u.1이 (가) 2 일 전에 생성되었고 u.2가 어제 생성 된 경우 차이는 24 시간입니다 (예 : – Ofer

+0

). 자세한 정보를 추가하십시오. – Devart

답변

3

select 문에 from 절이 있어야합니다.

Select date1 - date2 from dual 

같은 뭔가 날짜 1과 날짜 2 사이의 날짜 수를 반환합니다.

당신은 시간의 수를 원하는 경우 : "* * 2 사용자 사이의 시간 차이"

Select (date1 - date2)*24 from dual; 

(이것은 단지 오라클입니다) 당신이 무슨 뜻 이죠

+0

당신은 어떤 답을 받았습니까? – Ofer

+0

나는 당신의 질문을 이해하지 못한다. 그러나 결과의 유형에 대해 질문하면 결과는 첫 번째 쿼리의 일수를 나타내는 부동 소수점 숫자와 초 단위의 시간 수이다. 예를 들어, 0.5 일은 12 시간을 의미합니다. 다른 예 : 0.2 시간 = 0.2 * 60 분 = 12 분 –

+0

날짜 차이가 0이면 어떤 일이 발생합니까? 어떻게 시간을 얻을 수 있습니까? – Sadikhasan

14

MySQL DATEDIFF docs에서 :

Only the date parts of the values are used in the calculation. 

당신은이 배의 차이에 당신에게 시간의 수를 줄 것이다 TIMEDIFF

보고 싶을 것입니다 여기에

내 코드입니다 (귀하의 time_c 필드가 DATETIME 또는 유사하다고 가정)

SELECT HOUR(TIMEDIFF( 
    (SELECT max(u1.time_c) FROM users u), 
    (SELECT max(u2.time_c) FROM users u2) 
)) 
관련 문제