我尝试进行查询,其中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部分不匹配的事实有关
答案 0 :(得分: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。)