- 论坛徽章:
- 0
|
[quote]原帖由 [i]zhilon[/i] 于 2006-9-25 15:40 发表
如下两条SQL语句,查询意图完全一样,唯一区别只是where条件的位置不一样,
1:
select a.* from tm_billlist a
where to_date(substr(a.fd_filename,22,8 ),'YYYY-MM-DD') = TO_DATE('20060915','YYYY-MM-D ... [/quote]
我作了如下测试:
CREATE TABLE tm_billlist(fd_filename VARCHAR2(100));
INSERT INTO tm_billlist VALUES('IP_OFDING20060915.txt.Z');
COMMIT;
查询1:
SELECT * FROM tm_billlist ta
WHERE ta.fd_filename LIKE 'IP_OFDING%.txt.Z'
AND TO_DATE(SUBSTR(ta.fd_filename,10,8),'YYYY-MM-DD')=TO_DATE('20060915','YYYY-MM-DD');
结果:
FD_FILENAME
----------------------
IP_OFDING20060915.txt.Z
查询2:
SELECT * FROM tm_billlist ta
WHERE TO_DATE(SUBSTR(ta.fd_filename,10,8),'YYYY-MM-DD')=TO_DATE('20060915','YYYY-MM-DD')
AND ta.fd_filename LIKE 'IP_OFDING%.txt.Z';
结果:
FD_FILENAME
----------------------
IP_OFDING20060915.txt.Z
怀疑是你copy语句的时候字符转换问题,建议手工输入验证一下。 |
|