Porovnáváte dva STRINGS . Je třeba porovnat DATUM s. Jak jsem již řekl v jiné odpovědi zde, musíte datum ponechat tak, jak je to pro výpočty DATE. TO_CHAR je pro zobrazení a TO_DATE je převést řetězcový literál na DATE.
SELECT TO_CHAR(REPORTDATE, 'DD.MM.YYYY'),
COUNT(*)
FROM TABLE
WHERE REPORTDATE > TO_DATE('09.11.2013', 'DD.MM.YYYY')
GROUP BY TO_CHAR(REPORTDATE, 'DD.MM.YYYY')
REPORTDATE je také sloupec DATE, proto bude mít prvek datetime. Pokud tedy chcete při porovnávání vyloučit prvek času, musíte použít TRUNC
WHERE TRUNC(REPORTDATE) > TO_DATE('09.11.2013', 'DD.MM.YYYY')
Nicméně použití TRUNC v datovém sloupci potlačí jakýkoli běžný index na tom sloupci. Z hlediska výkonu je lepší použít podmínku časového období .
Například,
WHERE REPORTDATE
BETWEEN
TO_DATE('09.11.2013', 'DD.MM.YYYY')
AND
TO_DATE('09.11.2013', 'DD.MM.YYYY') +1