select * from tables where to_char(a.creationdate,'yyyy-mm-dd') between '2008-01-01' and '2008-07-31'
感觉beteen应该是用来比较有大小的字段,难道这个是比较ASCII码?这样的句话查出来的结果是满足createiondate在'2008-01-01' 到'2008-07-31'
之间数据吗?晕了。
感觉beteen应该是用来比较有大小的字段,难道这个是比较ASCII码?这样的句话查出来的结果是满足createiondate在'2008-01-01' 到'2008-07-31'
之间数据吗?晕了。
解决方案 »
- orcle备份还原问题
- 100分求oracle 9i 在 RedHat 7.1下的性能优化。
- oracle10g文件夹共享问题
- select in 限制问题 有哪个知道? 高手请看一眼.帮忙!!
- 哪位大哥大姐给点内存数据库方面的资料,或者建议啊!小弟急需。
- oracle 8.1.7.0.0 enterprise manager 是什么?
- ORA-12203 TNS:unable to connect to destination
- 为什么我用刚创建的用户不能登录ORAClE呢?望各位帮忙解答一下
- 在线等待:ORACEL中有没有字符集转换的函数?高分相送!
- 有哪些Oracle/db2特有的命令/用法,SQL Server不具备的?
- Oracle,toad问题,为什么我在toad里sql Editor编辑器里写了sql语句,我们不能删除和更改了?
- 通过 pl/sql developer 工具通过DBLINK去查询一个表。为什么commit,rollback按钮会被激活。
select * from tables where creationdate between to_date('2008-01-01','yyyy-mm-dd') and to_date('2008-07-31','yyyy-mm-dd')
可是今天有一个开发,这样写
select * from tables where to_char(a.creationdate,'yyyy-mm-dd') between '2008-01-01' and '2008-07-31'
这两句是相等的吗?性能上会有差异吗?总感觉用to_char挺奇怪的。可能是我见的少了。有哪位大哥可以解答下,这两种方式是不是相等的。creationdate是date类型的。
此外对col使用函数还影响查询效率。即便是有函数index,还有不如不使用函数的好。看来你比他有才。呵呵
这个也对,效果其实都是一样的
如果硬是论效率的话
应该是to_char()的那个效率高,毕竟是转换了一次,而to_date()转换了两次