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'
之间数据吗?晕了。
解决方案 »
- oracle 10.2 在CentOS4.7上安装到40% 不动了?
- 送分30分:请问ORACLE的日志文件、审计的作用
- 求SQL语句,逐条更新数据(急)
- 数据导入
- 简单问题,抬手得分!!!!!
- Enterprise Manager Console创建的序列如何与表中一字段绑定起来????
- 小问:你一句话!
- 求助!使用oracle.jdbc,更新数据库的问题
- 关于停止PL/SQL块或子程序的正常执行的出错信息提示?
- 表的主码信息在oracle8那张表中能找到?
- 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()转换了两次