我试图做一个查询,其中 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 部分不匹配的事实有关
最佳答案
如果您想要在给定日期发生的每条记录,那么这应该有效:
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。)
关于sql - 如何从 SQL 表中选择一个 TIMESTAMP 是一个特定的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19274295/