2010-02-04 4 views
2
내가 last_ddl_time='01 jan 2010'이 있지만 날짜 형식을 거부 all_objects 테이블을 쿼리해야

...오라클 last_ddl_time 형식

모든 몸이 나에게 조회 할 정확한 형식을 제공?

답변

0

to_date 함수를 사용하여 날짜의 서식을 지정할 수 있습니다. 리터럴 문자열을 입력하면 오라클은 기본 형식이 'DD-MON-YY'to_date을 사용하여 해당 문자열을 변환하려고 시도하므로 날짜는 "01-JAN-10"처럼 보일 것입니다. 오라클은이 같은 기능을 사용하기 때문에 사용자 정의 형식으로 제공 할 수있는 미세한 세밀도를 즐기고 싶을 것입니다.

해당 열에 저장된 날짜는 시간과 분 등 더 정확한 날짜 일 가능성이 높습니다. 성능에 다소 영향을 받으므로 trunc(last_ddl_time)을 사용하는 것이 더 나을 수 있습니다. =으로 테스트하는 경우

오라클의 날짜는 this link입니다.

+0

는 또한 시도했지만 ALL_OBJECTS로부터 사용 ... SELECT * WHERE last_ddl_time = TO_DATE ('01 -01- 2010 ','DD-MM-YYYY '); – ani8

+1

"사용하지 않음"? - 무슨 일이 있었는지 - 오류가 있었습니까? 아니면 컴퓨터가 폭발 했습니까? –

2

AKF는 DDL이 수정 된 정확한 시간을 알지 못하면 Trunc을 사용해야합니다. 주석에 추가 한 쿼리는 2010 년 1 월 1 일 00:00:00에 DDL이 변경된 개체를 찾고 있습니다. 시도 :

SELECT * 
    FROM all_objects 
WHERE trunc(last_ddl_time) = to_date('01-01-2010','dd-mm-yyyy'); 
+0

+1은 시간 요소를 언급합니다. – APC

1

을 내가 literaldate 드 사용하는 것이 좋습니다 :

where trunc(last_ddl_time) = date '2010-01-01' 
0
SELECT * 
    FROM all_objects t 
WHERE trunc(t.last_ddl_time, 'DD') = to_date('2010-JAN-01', 'YYYY-MON-DD');