关于查询中的时间函数TO_date OR TO_char

fanzs007 2012-03-31 04:54:37
已经做了useday列索引
1、---------------用TO_date函数查询速度很快-----------------------
select a.goodsid,b.vipid from pub_goods a,resa_sa_dtl b where a.goodsid=b.goodsid and b.vipid>0
and b.vipid not in(3344,1674,9028) and a.goodsname like '%(特%'
and b.useday between
TO_DATE('2012-03-31 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND TO_DATE('2012-03-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')

2、-------------用TO_char函数查询速度好慢-------------------------------------

select goods from pub_goods a,resa_sa_dtl b where a.goodsid=b.goodsid and b.vipid>0
and b.vipid not in(3344,1674,9028) and to_char(b.useday,'yyyy-mm-dd')=
to_char(sysdate,'yyyy-mm-dd')
and a.goodsname like '%(特%'

我想查询条件中b.useday等于今天的日期就行了(sysdate代入1中的TO_date函数)。
...全文
280 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hupeng213 2012-04-01
  • 打赏
  • 举报
回复
可以试试

and trunc(sysdate) - b.useday = 0
zhangqin12356 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

SQL code

select a.goodsid, b.vipid
from pub_goods a, resa_sa_dtl b
where a.goodsid = b.goodsid
and b.vipid > 0
and b.vipid not in (3344, 1674, 9028)
and a.goodsname like '%(特%'
and b……
[/Quote]

+1

学习了
buryMyLove 2012-04-01
  • 打赏
  • 举报
回复
b.useday这个字段上有所引吧?你的第一条语句走索引,第二条语句,因为对b.useday字段使用了to_char函数,就不走索引了吧,你可以看下执行计划……
啊彪123 2012-04-01
  • 打赏
  • 举报
回复
其实也可以创建函数索引!
hudingchen 2012-03-31
  • 打赏
  • 举报
回复
SELECT ...
FROM ...
WHERE b.useday >= trunc(SYSDATE)
AND b.useday <= trunc(SYSDATE) + 0.99999
ssqtjffcu 2012-03-31
  • 打赏
  • 举报
回复

select a.goodsid, b.vipid
from pub_goods a, resa_sa_dtl b
where a.goodsid = b.goodsid
and b.vipid > 0
and b.vipid not in (3344, 1674, 9028)
and a.goodsname like '%(特%'
and b.useday >trunc(sysdate,'dd')
ssqtjffcu 2012-03-31
  • 打赏
  • 举报
回复

select a.goodsid, b.vipid
from pub_goods a, resa_sa_dtl b
where a.goodsid = b.goodsid
and b.vipid > 0
and b.vipid not in (3344, 1674, 9028)
and a.goodsname like '%(特%'
and b.useday >trunc(sysdate,'dd')
fanzs007 2012-03-31
  • 打赏
  • 举报
回复
我想要的功能是查询条件中b.useday等于今天的日期就行了
不能用to_char,太慢了。
fanzs007 2012-03-31
  • 打赏
  • 举报
回复
如何才能在查询条件中等于今天呢?
ICE-word 2012-03-31
  • 打赏
  • 举报
回复
你第一个是明确查询当然快了
第2个是全部关联查找这样会慢!

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧