问个to_char to_date的问题~~ 表A的一个字段是datetime比如我要找出这个表中大于2009年3月的数据select * from table where 【这里我是用to_char(时间字段,'yyyy-mm'),还是用to_date】> 【2009-3这个参数,我是要把它to_date还是就弄个单引号圈起来就行了?】请把比日期的正确写法,where后面的部分重现一下,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from table 字段>=to_date('2009-03-01','yyyy-mm-dd') 原来的字段不用处理啊?参数部分to_date('2009-03-01','yyyy-mm')这要到月份 这样写可以吗 虽然两个都能用,从写法上来说TO_CHAR简单,也造成了许多人喜欢用但从性能上来说,用to_char在日期字段是不太合适的,因为一般日期字段都会有索引,而用to_char来做比较会使语句不走索引在查询数据占总数据的比例很小的情况下,to_char的效率要比to_date差好多 这样会报错的to_date一定要对应的你如果写成20090501,后面的就要写成yyyymmdd如果写成2009-05-01 ,就要写成yyyy-mm-dd to_date('2009-03,'yyyy-mm') 这样就OK了~、? 考虑效率的话,应该这样:select * from table where 时间字段 >= to_date('20090401','yyyymmdd') 原来的时间字段是不需要处理的,所以时间字段>to_date('日期','格式')这样就OK了 这个表中大于2009年3月的数据?这里写上的是3月1号(包括)以后的数据,可以自己改时间:select * from table t where t.datetime>=to_date('2009-03-01','yyyy-mm-dd') 效率方面应该是用TO_DATE比较高一些 用PLSQL配置数据库服务名,最后一步测试时提示ora-12170连接超时 有没有一个通用的分页sql语句,可以在任何数据库上使用的sql 读取重复记录?(有点复杂) 急!!!怎么写这个触发器?-自动删除表中90天以后的信息……来者有份 如何将9.2.0.1.0客户端升级到9.2.0.5.0? oracle 9i 怎么实现表间的联系 proc编译时区分时间的问题 奖励100分(ORA-12571) 问oracle数据库(应该每个数据库都一样)sql的优化方法(有效就给分) 在局域网内安装和使用oracle8i有什么需要准备和设置的? ORACLE 9i到10G plsql的小问题
参数部分to_date('2009-03-01','yyyy-mm')这要到月份 这样写可以吗
但从性能上来说,用to_char在日期字段是不太合适的,因为一般日期字段都会有索引,而用to_char来做比较会使语句不走索引
在查询数据占总数据的比例很小的情况下,to_char的效率要比to_date差好多
to_date一定要对应的
你如果写成20090501,后面的就要写成yyyymmdd
如果写成2009-05-01 ,就要写成yyyy-mm-dd
select * from table
where 时间字段 >= to_date('20090401','yyyymmdd')
时间字段>to_date('日期','格式')
这样就OK了
这里写上的是3月1号(包括)以后的数据,可以自己改时间:
select * from table t where t.datetime>=to_date('2009-03-01','yyyy-mm-dd')