Vyzkoušejte níže uvedený dotaz, který pouze přidá TRUNC() do sloupce s datem před použitím DISTINCT z toho.
select distinct(TRUNC(MY_DATE)) from MY_TABLE where extract(year from MY_DATE) = 2014;
Důvodem je, že časový faktor v datech vašeho sloupce není stejný.
TRUNC() zruší prvek času a zachová pouze datum
Dotaz to skutečně odhalí. TO_CHAR() pro výstup data uloženého v určeném formátu.
select TO_CHAR(MY_DATE,'MM-DD-YYYY HH24:MI:SS') from MY_TABLE where extract(year from MY_DATE) = 2014;
Další informace o TRUNC z Oracle Docs