2012-06-18 4 views
2

나는 새로운 Oracle 데이터베이스와 호환되도록 Informix 데이터베이스를 참조하는 스크립트를 변환하는 임무를 맡았습니다.오라클의 Informix`interval` 함수에 해당하는 것은 무엇입니까?

필자는 개별 스크립트를 살펴보고 Informix와 Oracle간에 구문 적으로 다를 수있는 함수 호출을 찾아 보았습니다.

where f.writetime > current - interval(xxx) day to day 

정확하게 그 기능은 무엇을 의미 하는가, 특히 (xxx) 부분과 무엇 : 그러나 나는이 사람이 나에게 조금 난처한 상황에 빠진있다, 나는 가로 질러 온 함수 호출 대부분의 오라클 상당을 찾을 수 있었다 오라클 상당?

+2

당신은 또한 'DATETIME (YYYY-mm-dd HH : MM : SS.fffff) YEAR TO FRACTION (5)'를 볼 수 있습니다. 이것은 표준 SQL의'TIMESTAMP'와 같습니다. Informix에는 SQL 표준 유형으로 직접 표현할 수없는 몇 가지 변형이 있습니다. 표준 예는'DATETIME (mm-dd HH : MM) MONTH TO MINUTE'입니다. 다행히도 이러한 용도는 거의 없습니다. 'DATETIME HOUR MINUTE'는 드물지 만 초 단위로 쉽게 이식 할 수 있습니다. –

답변

4

이것은 함수 호출이 아닙니다. Informix SQL의 INTERVALdata type literal syntax입니다.

Oracle SQL은 interval data type도 지원합니다.

나는 writetime 현재 시간 마이너스 XXX 일보다 큰 경우 오라클은 기본적으로

WHERE f.writetime > current_timestamp - INTERVAL 'xxx' DAY TO DAY 

와 유사한 결과를 제공 할 것으로 기대한다.

+0

@N West 그건 의미가있어. 나는 기본적으로 같은 것을 넣었지만'xxx' 부분을 무엇을 해야할지/만들지는 확실하지 않았습니다. 당신의 도움을 주셔서 감사합니다! –

+3

출발 및 도착 단위가 동일 할 때 오라클은 아마도 '오늘부터 시작'하지 않아도됩니다. 표준 SQL에'INTERVAL 'xxx'DAY'라고 쓸 수 있습니다. 아마도 '오늘의 하루'도 거절하지 않을 것입니다. (Informix는 항상 시작 단위와 끝 단위를 필요로합니다.) –

관련 문제