oracle 时间字段查找条件问题

oracle中查询时间字段不能使用like?

就好像 And INSTOCK.FDATE Like '2010-%'

加上这句话就成了空了
Like '2010-%'

如果我想把他转成字符串 to_char(sysdate,'yyyy年mm月dd日 hh24:mi:ss')
方法。。
怎么使用
我还是要用like函数啊,,

like是用来比较字符串类型的值的,日期格式的字段不能直接使用like来比较。
如果想对日期使用like的话,需要将date类型的字段转换成字符类型的,使用to_char()就可以。
比如 to_char(sysdate,'yyyy年mm月dd日 hh24:mi:ss')
如果想比较时间,直接用date类型的来相互比较效率会更高,可以写成:
And INSTOCK.FDATE > trunc(SYSDATE,'y') 就是时间大于本年1月1号0点0分0秒

补充:
INSTOCK.FDATE是date类型的话,也可以:
And to_char(INSTOCK.FDATE,'yyyy-') = '2010-'
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-29
不知掉 你的看你的格式
如果格式不对的话 有问题
可以这样 to_char(date,'YYYY')='2010'
或者 to_date(date,'YYYY-MM-DD :HH24:MI:SS')='2010-1-1 16:26:22'
其中 HH24 是24小时制的 HH是12小时制的本回答被提问者采纳
第2个回答  2010-03-29
可以这样and to_char(INSTOCK.FDATE,'YYYY')='2010'
效果与And INSTOCK.FDATE Like '2010-%'是一样的

也可以这样and to_char(INSTOCK.FDATE,'YYYY-mm-dd') like '2010-%'
第3个回答  2010-03-29
如果要用like 则要把DATE类型转换成VARCHAR类型才可以。
相似回答