0

我有一个名为 Evrak 的表,它有两列 Product_Date [timestamp(6)] 和 Evrak_Name[varchar2(50)]。有一条记录,名称为 Evrak Test,Product_Date 为
25-APR-12 12.00.00.000000000 PM。

当我想运行类似的查询时;

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

它确实返回了一个空记录,我尝试更改格式类型并使用了 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')

既然你想25-APR-12 12.00.00.000000000 PM不想25-APR-12 12.00.00.000000000 AM

于 2012-05-09T21:02:51.273 回答
0

Time stamps are finicky. Like floating point numbers, there may be insignificant bits that affect comparisons.

I would suggest returning things within a range. For instance, the following query returns time stamps within one second.

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 回答