oracle中between to,关于 oracle between and的用法!
优质回答 回答者:PzeroO
oracle date等类型是带时间部分的,所以你这个2011-07-05 只是相当于2011-07-05 00:00:00这个时刻,按你的写法大于这个时刻的是不会删除的。如果你确实要删除2011-07-05的建议你用以下写法:
delete from jf_syslog where inputtime >=date'2011-07-01' and nputtime
如果不担心2011-07-06 00:00:00的也可以
delete from jf_syslog where inputtime between date'2011-07-01' and date'2011-07-06'
如果效率可以接受,可以先转换成字符串
delete from jf_syslog where to_char(inputtime,'yyyymmdd') between '20110701' and '20110705'
你可以考虑连接上一个固定的字符串这样的,但是因为时间上是没有24:00:00的,所以还是会有问题的,不如直接在日期上加一天用<
-----------------------------------------------------------------
回答者:Ashic
报错着2个条件?这句话没看懂。。。
你可以用IN
delete from jf_syslog where inputtime IN ('2011-07-01' ,'2011-07-02','2011-07-03','2011-07-04','2011-07-05' )
如果这样麻烦你可以把你的语句改成delete from jf_syslog where inputtime between '2011-07-01' and '2011-07-06‘
-----------------------------------------------------------------
回答者:大地飞鹰
时间格式的比较可以转化成为字符格式进行比较处理,若 inputtime 为时间格式类型上面就可以如此处理:delete from jf_syslog where to_char(inputtime,'YYYY-MM-DD') >= '2011-07-01' and to_char(inputtime,'YYYY-MM-DD') <= '2011-07-05';
-----------------------------------------------------------------
回答者:25416
你那个字段不是日期格式的
因为没有写秒,所以默认后面那个7月5日就是 20110705000000 也就是零时零分零秒
所以你吧这个精确到秒就好了
-----------------------------------------------------------------
回答者:majorllen
delete from jf_syslog where to_date(inputtime,'yyyy-mm-dd') between to_date('2011-07-01','yyyy-mm-dd') and to_date('2011-07-05' ,'yyyy-mm-dd')
测试通过
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)