oracle检索中文日期(varchar2)方法

select * from tblName where to_date(replace(replace(replace(columnName,'年','-'),'月','-'),'日',''),'yyyy-mm-dd hh24:mi:ss') > to_date('2011-04-20','yyyy-mm-dd')

用途:可以方便的查找表中某一时间范围内的记录,其中tblName可以是任何表,columnName可以是表中具有如‘2011年3月19日 15:14:22’中文格式数据的任何字段

思路:to_date方法不能将中文格式(如2011年3月19日 15:14:22 )转成日期类型,所以另辟蹊径。

第一步:将varchar2类型中文日期转成能支持to_date方法的日期格式的字符串,注意:这里依然还是字符串但是转成了to_date支持的数据格式(如2011-04-20,只要oracle支持就好,2011/04/20也行)

eg:replace(replace(replace(columnName,'年','-'),'月','-'),'日','')

第二步:将第一步获得的字符串用to_date()转成日期

eg:to_date(replace(replace(replace(columnName,'年','-'),'月','-'),'日',''),'yyyy-mm-dd hh24:mi:ss')

第三步:在where语句中像从前那样写好你所需要的时间范围,我这里是检索日期大于2011年4月20日的所有数据

eg:where to_date(replace(replace(replace(columnName,'年','-'),'月','-'),'日',''),'yyyy-mm-dd hh24:mi:ss') > to_date('2011-04-20','yyyy-mm-dd')

 

这里只是个土方法,今天遇上了,想到的方法,应该是有更简单的方法,欢迎拍砖。。。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值