首先......对不起我的英语。
我有这样的查询:
Select *
From tableA
Where (
TO_NUMBER(TO_CHAR(dateA(+),'SYYYY')) = 2013
AND TO_NUMBER(TO_CHAR(dateA(+),'MM')) = 02
AND to_number(to_char(dateA(+),'dd')) <= 25
)
并从每个日期检索我的数据,直到我给出的最后一个数字作为参数,在这种情况下是第25天。这工作但非常延迟因为“Where”语句的形式...任何人都知道另一种检索方式数据如此之快,具有相同的功能?
答案 0 :(得分:2)
这听起来像你想要的
SELECT *
FROM tableA
WHERE dateA BETWEEN trunc( date '2013-02-26', 'MM' ) AND date '2013-02-26'
这将返回dateA
在月初和指定日期之间的所有行。如果dateA
上有索引,Oracle就可以将它用于这种查询(尽管它实际上是否是一个单独的问题)。