我有一个巨大的表,按日期索引。通过使用索引我得到数据,没问题。但我必须截断(日期)到月,所以它包括整个月,通过这样做我失去了索引的访问权限。有什么办法吗?thnx
您必须避免在日期列上进行任何转换。你可以这样做,例如使用这样的子句(这个例子给出了本月的所有行):
And (mydatecol >= trunc(sysdate,'MM') and mydatecol < trunc(add_month(sysdate,+1),'MM') )
只需转换变量,不要触摸列。
不想留下未回答的问题,我已经通过使用方法LAST_DAY(:edate)+1-1/86400
和ADD_MONTHS((LAST_DAY(:edate)+1),-1)
解决了这个问题
是的,我试图找到避免TRUNC()
的方法