2012-10-14 2 views
0

tbl이라는 테이블에서 단일 MySQL datetime 열에서 시작 열과 끝 열을 선택하고 싶습니다. 어떤 제안?단일 datetime 열에서 시작 열 및 끝 열 만들기

I로 시작하는 :

+---------------------+ 
|  date_time  | 
+---------------------+ 
| 2012-03-05 10:15:52 | 
| 2012-03-05 10:15:53 | 
| 2012-03-05 10:15:54 | 
+---------------------+ 

구인 결과 :

+---------------------+---------------------+ 
|  start_time  |  end_time  | 
+---------------------+---------------------+ 
| 2012-03-05 10:15:52 | 2012-03-05 10:15:53 | 
| 2012-03-05 10:15:53 | 2012-03-05 10:15:54 | 
+---------------------+---------------------+ 
+0

당신이 값 A, B와 C가 있다면, 당신은 AB와 BC 원하는, 또는 범위를 저장하고자 할 시간이야? – Darkwater

+0

네, A-B와 B-C를 부탁합니다. 시간의 범위는 필요하지 않습니다. – user554481

답변

4
SELECT cur.date_time AS start_time, MIN(nxt.date_time) AS end_time 
FROM  my_table AS cur JOIN my_table AS nxt ON nxt.date_time > cur.date_time 
GROUP BY cur.date_time 

sqlfiddle에를 참조하십시오.

+0

대단히 감사합니다. – user554481

0
select end_time.date_time as [start], 
    (select 
    min(date_time) -- select smallest value from 

    from da start_time --another table instance which i called start_time 

     -- taking datetimes earlier than start 
    where start_time.date_time > end_time.date_time 

    ) as [end] 

from da end_time -- table instance with start time 

--dont take last value (end time for that value will be null) 
where 
    end_time.date_time < (select max(date_time) from da)  

내 테이블 :

TABLE [da] 
Id date_time 
1 2012-03-05 10:15:52.000 
2 2012-03-05 10:15:53.000 
3 2012-03-05 10:15:54.000 

내 결과 : 그래서

start     end 
2012-03-05 10:15:52.000 2012-03-05 10:15:53.000 
2012-03-05 10:15:53.000 2012-03-05 10:15:54.000 
관련 문제