2014-05-09 1 views
0

열이 ACC_DATE_TIMECYCLING_ACCIDENTS_2이라는 테이블이 있습니다.이 날짜는 31-MAY-12 16.45.00.000000에 저장되는 방법의 예입니다. 그런 날짜의 시간을 어떻게 쿼리 할 수 ​​있는지 알고 싶습니다. 형식을 갖춰 내가 가지고있는 모든 해 (2005-2012)의 시간 간격을 가질 수 있지만 하루 중 특정 시간에만 제한됩니다. 많은 기능을 시도했지만 지금까지 구문 오류가 있지만 웹에서 검색하려했지만 내 경우에 적절한 내용을 볼 수 없습니다. 아무도 도와 줄 수 있습니까?오라클의 타임 스탬프 데이터 유형 쿼리

감사합니다.

답변

0

우선, 타임 스탬프는 숫자가 아닌 문자열입니다. 따라서 날짜는 기본적으로 31-MAY-12 16.45.00.000000으로 표시되지만 사실은 1970 년 이래로 마이크로 초입니다.

당신은 단지 시간 부분 사용 to_char()

select to_char(acc_date_time, 'hh24:mi') time 
,  count(*) occurences 
from cycling_accidents_2 
group by to_char(acc_date_time, 'hh24:mi') 

편집 선택하려는 경우가 감사했다

select * 
from cycling_accidents_2 ca 
where to_char(ca.acc_date_time, 'hh24:mi') between '10:00' and '18:00' 
and ca.acc_date_time >= to_timestamp('01-01-2005', 'dd-mm-yyyy') 
and ca.acc_date_time < to_timestamp('01-01-2013', 'dd-mm-yyyy') 
+0

:이 두 번째 쿼리가 실제로 귀하의 질문에 대답을 생각을 – user3523583

0
SELECT * FROM CYCLING_ACCIDENTS_2 WHERE 
(EXTRACT(YEAR FROM ACC_DATE_TIME) BETWEEN 2005 AND 2012) 
AND 
(EXTRACT(HOUR FROM ACC_DATE_TIME) BETWEEN 10 AND 18)