in (to_char(key_date,'yyyymm'),to_char(key_date,'yyyymm')
这个能通过吗?in ('200405','200405')即可。

解决方案 »

  1.   

    但是要改用in (to_char(key_date),to_char(key_date)
      

  2.   

    换句话说就是
    to_char(ac.key_date,'yyyymm') in (to_char(key_date,'yyyymm'),to_char(key_date,'yyyymm')

    to_char(ac.key_date,'yyyymm') in ('200405','200405')
    这两句的效果是不是一样呢?
      

  3.   

    to bzszp(SongZip):因为用户随便输入什么月份都可以,所以不能定一个死数,呵呵。要是只需要5月的话,那就已经没有问题了。实际情况是,我用这两句分别写,'200405'的时候数据是正确的,但是使用to_char的时候,数据是错误的.我一开始也认为他们是一样的,苦恼啊,苦恼
      

  4.   

    to bluelamb(bluelamb) :用in (to_char(key_date),to_char(key_date)好像不行,我试验过了.苦恼啊,苦恼.眼瞅着差一点点,就是不对阿。哎......
      

  5.   

    这样写没有问题in (to_char(key_date),to_char(key_date))我试过了
    SQL> select * from b t where  name in(to_char('01'),to_char('011'));ID  NAME
    --- --------------------
    0   01
    01  011
      

  6.   

    但是key_date = Request("key_date")中最前面的key_date不是表中的字段。难道有其他的原因,为什么我试验就不行呢?
      

  7.   

    我用in (to_char(key_date),to_char(key_date)),没有查到记录,靠,奇怪!
      

  8.   

    其实解决的办法也简单,不管用什么方法,只要让
    to_char(key_date,'yyyymm')的返回值和'200403'这种形式一样就行。请各位指点,是不是我方法用得不好,还是有其他的更好函数可以使用。