나는 오라클에 DATE
컬럼을 가진 테이블을 가지고 있습니다.왜 SELECT DISTINCT가 동일한 값을 두 번 반환합니까?
select distinct myDate from myTable;
myDate
----------------------------
2009-09-05 00:00:00
2009-09-05 00:00:00
:하지만
select distinct to_char(myDate, 'DD-MM-YYYY HH24:MI:SS') from myTable;
TO_CHAR(myDate,'DD-MM-YYYYHH24:MI:SS')
------------------------------------------------
05-09-2009 00:00:00
그리고 다음 쿼리, 자세한 내용을 알 수 있습니다 :
select count(*) from myTable;
COUNT(*)
----------
12
select myDate, count(*) from myTable group by myDate;
myDate COUNT(*)
---------------------------- ----------
2009-09-05 00:00:00 6
2009-09-05 00:00:00 6
select count(*) from myTable where myDate='2009-09-05';
COUNT(*)
----------
6
어떻게 그런 행동의 이유가 될 수 있습니다 나는 SELECT DISTINCT
중복을 반환하는 것을 관찰 할 수 있습니까? 내가 아는 한, 차이를 만들 수있는 DATE
열에 더 이상 정보가 저장되어 있지 않습니다 (시간대 없음, 밀리 초 없음).
편집 : 테이블 DDL
불행히도 나는 모든 DDL을 게시 할 수 없습니다. 컬럼의 정의는 다음과 같습니다 중요 할 수 있습니다 무엇
myDate DATE NOT NULL
는 테이블이 열을 사용하여 분할 :
PARTITION BY RANGE (myDate)
(
PARTITION P_19991231 VALUES LESS THAN
(TO_DATE('1999-12-31 00:00:00',
'YYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
);
테이블에서 더 많은 파티션이있다.
또한 ENABLE ROW MOVEMENT
이 켜져 있습니다.
테이블 스키마를 제공 할 수 있습니까? – Farlan
SQL * Plus의 NLS 형식을 변경하여 *** 및 *** 시간을 표시하는 이유는 무엇입니까? –
@a_horse_with_no_name 변경하고 내 질문을 편집했습니다. 그러나 그것은 아무것도 (적어도 나를 위해) 보여줍니다. – psur