いいえ。日付/タイムスタンプ フォーマットはありません 。 Oracleは、日付/タイムスタンプを表示されている形式で保存しません。表示される形式は表示専用です 目的。 日付は、Oracle独自の形式である7バイトで内部的に保存されます 。
もちろんできます。 TRUNCを使用できます 時間部分を切り捨て、日付部分のみを残し、データ型は日付のままにします。
たとえば、
SQL> SELECT TRUNC(SYSTIMESTAMP) my_tmstmp FROM DUAL;
MY_TMSTMP
----------
2015-05-29
したがって、その形式のユーザー入力を文字列として取得します 。最初に変換する必要があります TO_DATEを使用してDATEに挿入します そしてそれを比較します。
たとえば、
WHERE TRUNC(dt_column) < TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
すでに述べたように、時間部分を無視したい場合は、 TRUNCを適用します。 。
ただし、 TRUNCを適用する 日付の列 通常のインデックスを抑制します その列に。パフォーマンスの観点から、日付範囲条件を使用することをお勧めします 。
たとえば、
WHERE dt_column
BETWEEN
TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
AND
TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS') +1