2つの文字列を比較しています 。 日付を比較する必要があります s。ここで他の回答ですでに述べたように、DATEの計算では日付をそのままにしておく必要があります。 TO_CHAR は表示用で、 TO_DATE 文字列リテラルを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はDATE列であるため、datetime要素が含まれます。したがって、比較中に時間要素を除外する場合は、 TRUNCを使用する必要があります。
WHERE TRUNC(REPORTDATE) > TO_DATE('09.11.2013', 'DD.MM.YYYY')
ただし、 TRUNCを適用する 日付の列 通常のインデックスを抑制します その列に。パフォーマンスの観点から、日付範囲条件を使用することをお勧めします 。
たとえば、
WHERE REPORTDATE
BETWEEN
TO_DATE('09.11.2013', 'DD.MM.YYYY')
AND
TO_DATE('09.11.2013', 'DD.MM.YYYY') +1