可爱的琪琪,开心快乐每一天
温馨小屋
可爱的琪琪,开心快乐每一天
posts - 7,comments - 39,trackbacks - 0

  思路是先将oracle中时间字段转化成字段串,然后与字符串模糊查询
如下:
select * from atm1_operatelog t where to_char(t.operatetime,'yyyy-MM-dd') like '2006-10-16'

同时反过来也是一样可行的
select * from atm1_operatelog t where t.operatetime like to_date('2006-10-16','yyyy-MM-dd')
将字段串转化为时间然后使用like关键字

posted on 2006-10-17 15:45 陈琪 阅读(4881) 评论(8)  编辑  收藏

FeedBack:
# re: oracle时间模糊查询
2006-10-17 23:50 | someone
在where子句中使用数据库函数,会导致索引无法使用。
而且在sql里面用上数据库特定函数的话,对移植性也有影响。

个人认为日期模糊查询较好的做法是使用JDBC的PreparedStatement,sql写标准sql(与数据库无关),日期值用? 然后代码里面将日期的范围值set进去,把日期处理交给JDBC来做。

如上面例子 select * from atm1_operatelog t where t.operatetime < ? and t.operatetime > ?

代码里面 PreparedStatement.setDate(1,date1);
PreparedStatement.setDate(2,date2);
  回复  更多评论
  
# re: oracle时间模糊查询
2006-10-18 08:46 | 陈琪
你的意见是正确的,
问题是该如何实现呢?能给个具体的例子么?
你的想法我也考虑过,但是没找到好的实现方法。
你给个例子吧,让大家都学习学习
@someone
  回复  更多评论
  
# re: oracle时间模糊查询
2006-10-18 09:19 | someone
//get connection
Connection con = xx;
String sql = "select * from atm1_operatelog t where t.operatetime < ? and t.operatetime > ?";
PreparedStatement p = con.preparedStatement(sql);
DateFormat formater= new SimpleDateFormat("yyyy-MM-dd");
//2006-10-16 means days before 2006-10-17 and after 2006-10-15
p.setDate(1,formater.parse("2006-10-17"));
p.setDate(2,formater.parse("2006-10-16"));
ResultSet result = p.executeQuery() ;
//process ResultSet
........
  回复  更多评论
  
# re: oracle时间模糊查询
2006-10-18 14:30 | 123bingbing
增开7群,号码 30440732
8群 30756649
9群 30178567
10群 28694497

我们的qq群:15096318 学习程序的都可以来  回复  更多评论
  
# re: oracle时间模糊查询
2006-10-18 18:01 | 有猫相伴的日子
使用like效率很低没必要这么转吧!!!!!等于运算就可以了  回复  更多评论
  
# re: oracle时间模糊查询
2006-10-19 09:00 | 陈琪
someone,你的意思我明白了。
p.setDate(1,formater.parse("2006-10-17"));
p.setDate(2,formater.parse("2006-10-16"));
思维不错,受教了。
@someone
@123bingbing
@有猫相伴的日子

使用like效率确实很低。不过很多时候模糊查询需要用到它  回复  更多评论
  
# re: oracle时间模糊查询
2006-11-01 15:24 | zhousir
利用to_char来转化成字符形式是可行的,至于效率问题,可以创建函数索引--基于to_char(时间字段),那样可以非常快的查询出结果~  回复  更多评论
  
# re: oracle时间模糊查询
2008-12-30 13:15 | 北京时间
使用like效率确实很低  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: