各位大侠:
我在oracle9数据库中,有个字段是varchar2类型的,里面存的是时间,格式如下"2007年10月08号15点05分",现在想查询日期是某一天到某一天之间的所有记录,比如从"2007年10月01号"到"2007年10月08号"之间的所有记录。这个该怎么作呢?注:查询某一天的记录,比如2007年10月08号的所有记录,可以这样写
select * from LOG where instr(OPE_DATE,'2007年10月08号')>0,OPE_DATE就是存放时间的varchar2字段。谢谢了!!
我在oracle9数据库中,有个字段是varchar2类型的,里面存的是时间,格式如下"2007年10月08号15点05分",现在想查询日期是某一天到某一天之间的所有记录,比如从"2007年10月01号"到"2007年10月08号"之间的所有记录。这个该怎么作呢?注:查询某一天的记录,比如2007年10月08号的所有记录,可以这样写
select * from LOG where instr(OPE_DATE,'2007年10月08号')>0,OPE_DATE就是存放时间的varchar2字段。谢谢了!!
1、更好的性能。
2、永远正确的日期格式,保证数据完整性。
anyway,你的问题可以这样解决:
SELECT * from log where TO_DATE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (ope_date, '年', '-' ), '月', '-' ), '日', '-' ), '号', '-' ), '点', '-' ), '分', '' ), 'YYYY-MM-DD-HH24-MI' )
between to_date('2007-10-01','YYYY-MM-DD') AND to_date('2007-10-08','YYYY-MM-DD')
不是系统可以识别的时间格式;只能当字符串来处理;效率比较差;
使用爱心觉罗的方式比较好