select * from r3_so where to_char(erzet,'yyyy-mm-dd hh24:mi:ss') = '2010-07-16 09:57:02';
其中erzet是date型,这个数据存在,但是这样select为什么不能成功呢?select * from r3_so where trim(to_char(erzet,'yyyy-mm-dd hh24:mi:ss')) = '2010-07-16 09:57:02';
这样就可以难道是to_char返回的类型不对吗?请指点
其中erzet是date型,这个数据存在,但是这样select为什么不能成功呢?select * from r3_so where trim(to_char(erzet,'yyyy-mm-dd hh24:mi:ss')) = '2010-07-16 09:57:02';
这样就可以难道是to_char返回的类型不对吗?请指点
返回的对,trim是多余的,因为to_char里面的字符串'yyyy-mm-dd hh24:mi:ss'已经表明了返回的字符串前后没有空格。
但是为什么trim能解决问题呢?知道原因吗?
刚刚我尝试了,把trim换成to_char,也就是to_char(to_char(erzet,'yyyy-mm-dd hh24:mi:ss'))这样也可以,所以我怀疑是返回类型的原因
SQL> SELECT 1 FROM dual WHERE to_char(trunc(SYSDATE),'yyyy-mm-dd hh24:mi:ss')='2010-07-28 00:00:00';
1
----------
1
SQL>
我检查了一下字符串,没有发现问题,当时是select出来的,然后我反向又粘贴回去了。
不过现在我又仔细看了一下,改了字符串,可以了。多谢。