0

Evrakという名前のテーブルがあり、Product_Date [timestamp(6)]とEvrak_Name [varchar2(50)]の2つの列があります。名前がEvrakTestで、Product_Dateが
25-APR-1212.00.00.000000000PMであるレコードがあります。

;のようなクエリを実行したい場合。

select * from Evrak Where Evrak.Product_Date  = TO_TIMESTAMP ('25.04.2012:00:00:00','DD.MM.YYYY:HH24:MI:SS')

nullレコードを返します。フォーマットタイプを変更しようとし、to_date、to_charメソッドを使用しましたが、レコードを取得できませんでした。ここで何が欠けていますか?または、タイムスタンプ列をクエリする際の特別な使用法はありますか?

4

2 に答える 2

2

試す:

select * 
 from Evrak 
Where Evrak.Product_Date  = TO_TIMESTAMP ('25.04.2012:12:00:00','DD.MM.YYYY:HH24:MI:SS')

Since you want 25-APR-12 12.00.00.000000000 PM and not 25-APR-12 12.00.00.000000000 AM

于 2012-05-09T21:02:51.273 に答える
0

タイムスタンプは気難しいです。浮動小数点数と同様に、比較に影響を与える重要でないビットが存在する場合があります。

範囲内で返品することをお勧めします。たとえば、次のクエリは1秒以内にタイムスタンプを返します。

select *
from Evrak
Where abs(Evrak.Product_Date - TO_TIMESTAMP ('25.04.2012:00:00:00', 'DD.MM.YYYY:HH24:MI:SS')) < 1.0/(24*60*60)
于 2012-05-09T15:31:55.883 に答える