换句话说就是 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') 这两句的效果是不是一样呢?
to bzszp(SongZip):因为用户随便输入什么月份都可以,所以不能定一个死数,呵呵。要是只需要5月的话,那就已经没有问题了。实际情况是,我用这两句分别写,'200405'的时候数据是正确的,但是使用to_char的时候,数据是错误的.我一开始也认为他们是一样的,苦恼啊,苦恼
to bluelamb(bluelamb) :用in (to_char(key_date),to_char(key_date)好像不行,我试验过了.苦恼啊,苦恼.眼瞅着差一点点,就是不对阿。哎......
这样写没有问题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
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')
这两句的效果是不是一样呢?
SQL> select * from b t where name in(to_char('01'),to_char('011'));ID NAME
--- --------------------
0 01
01 011
to_char(key_date,'yyyymm')的返回值和'200403'这种形式一样就行。请各位指点,是不是我方法用得不好,还是有其他的更好函数可以使用。