4

特定の日付に対して TIMESTAMP フィールドが = であるクエリを実行しようとしていますが、クエリが機能していません。

フィールドはタイプ TIMESTAMP(6) で、これまで DATE / DATETIME フィールドでしか作業したことがありません。ここに格納される値の例を次に示します: 04-OCT-13 12.29.53.000000000 PM

これが私のSELECTステートメントです:

SELECT * FROM SomeTable WHERE timestampField = TO_DATE('2013-10-04','yyyy-mm-dd')

結果を取得していません。タイムスタンプの TIME 部分と一致しないという事実に関係していると思います

4

1 に答える 1

9

特定の日に発生するすべてのレコードが必要な場合は、次のようにします。

SELECT * FROM SomeTable
  WHERE timestampField >= TO_TIMESTAMP( '2013-03-04', 'yyyy-mm-dd' )
    AND timestampField < TO_TIMESTAMP( '2013-03-05', 'yyyy-mm-dd')

timestampFieldインデックスが存在する場合、それを利用する可能性があります。別の方法は次のとおりです。

SELECT * FROM SomeTable
  WHERE TRUNC(timestampField) = TO_DATE( '2013-03-04', 'yyyy-mm-dd' )

その場合、 に関数ベースのインデックスが必要になる場合がありますTRUNC(timestampField)

(TIMESTAMP に適用された TRUNC は DATE を返すことに注意してください。)

于 2013-10-09T14:14:38.907 に答える