2017-12-13 11 views
0

에 필터 쿼리 내 선택 아마도 아마 내가 사용하는 형식은 두 번째 시간을 다듬습니다 때문에).오라클 : 나는 내가 대신 날짜를 사용하는 경우 나로부터 아무것도 얻을 수 없다 (선택 소인의 결과로 사용하고 있음을 달성하기 위해</p> <pre><code>SELECT ... FROM ... WHERE my_date=(RESULT FROM A SELECT) ... ; </code></pre> <p>으로 쿼리를 제한해야하는 날짜

select DISTINCT TO_DATE(TO_TIMESTAMP(TO_DATE('25-10-2017 00:00', 'dd-MM-yyyy HH24:MI'))) from DUAL; 

돌려 주어

ORA-01830 : 날짜 형식의 그림이 전체 입력 문자열

를 변환하기 전에 어떻게 끝나는 타임 스탬프 처리하는 쿼리의 이러한 kindo이 때문에

는 슬프게도이 작동하지 않습니다 지금까지의 전환?

+0

'CAST (timestamp_col AS DATE) '의 문제점은 무엇입니까? 전체 쿼리를 게시 할 수 있습니까? –

+0

감사합니다. Tim, 이제 캐스트 (... 날짜)와 함께 datetime을 얻었습니다. 그래서 당신은 그 질문에 대답했습니다. 아직도 나는 다른 문제인 내 문제를 해결하지 못했다. 사실 : SELECT * FROM customer 어디에서 last_update_dt = CAST ( (선택 DISTINCT TO_TIMESTAMP (last_update_dt) from ... ) AS DATE); 은 날짜 간의 평등성 테스트가 잘못된 관행 인 것처럼 아무 것도 반환하지 않습니다. – jimifiki

+0

이 질문을하기 위해 몇 가지 데이터를 추가 할 수 있습니까? –

답변

1

단지 날짜를 비교하고 확인하려면 LHS와 RHS 모두에서 trunc를 사용하십시오.

SELECT ... FROM ... 
WHERE trunc(my_date)=(select trunc(RESULT) FROM A) 
... ; 

이 그냥 타임 스탬프를 절단하여 날짜를 비교합니다

1

당신은 당신이 기대하고 무엇을 달성하기 위해 "TRUNC"귀하의 질의에 "IN"키워드의 조합을 사용할 수 있습니다 값. 아래 쿼리 샘플을 참고 자료로 확인하십시오.

SELECT * FROM customer WHERE TRUNC(last_update_dt) IN (select DISTINCT (TRUNC(last_update_dt)) from ...)

건배!

+0

답변 해 주셔서 감사합니다. 내 구체적인 경우에는 평등이 충분하므로 평등 검사를 받기 위해갔습니다. 당신의 대답은 저에게 도움이되었습니다. – jimifiki