Prova frågan nedan, som bara lägger till TRUNC() till din datumkolumn innan du tar en DISTINCT av det.
select distinct(TRUNC(MY_DATE)) from MY_TABLE where extract(year from MY_DATE) = 2014;
Detta beror på att tidsfaktorn i din kolumndata inte är densamma.
TRUNC() kommer att ogiltigförklara tidselementet och behåller endast datumet
Frågan kommer faktiskt att avslöja det. TO_CHAR() för att mata ut det sparade datumet i det angivna formatet.
select TO_CHAR(MY_DATE,'MM-DD-YYYY HH24:MI:SS') from MY_TABLE where extract(year from MY_DATE) = 2014;
Mer om TRUNC från Oracle Docs