oracle 数据库表如下:
CREATE TABLE "SCOTT"."EMP"
( "EMPNO" NUMBER(4,0),
"ENAME" VARCHAR2(10),
"JOB" VARCHAR2(9),
"MGR" NUMBER(4,0),
"HIREDATE" TIMESTAMP (6),
"SAL" NUMBER(7,2),
"COMM" NUMBER(7,2),
"DEPTNO" NUMBER(2,0
)
我做如下查询:
select * from emp where hiredate >to_date('1980-12-17','yyyy-mm-dd') ,查询结果如下:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-12月-80 12.00.00.000000 上午 800 20
然后我又做如下查询:
select * from emp where hiredate<(to_date('1980-12-17','yyyy-mm-dd')+0.99999) 查询结果如下:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-12月-80 12.00.00.000000 上午 800 20 我把以上两个查询条件放在一起,就查询不出结果了!如下所示:
select * from emp where hiredate >to_date('1980-12-17','yyyy-mm-dd') and hiredate<(to_date('1980-12-17')+0.99999)
查询结果竟然为空!!
这是为什么啊?大街能不能告诉我。
我想避免在hiredate列上使用函数而影响索引的使用。。
为什么查询不出结果啊。。多谢!
CREATE TABLE "SCOTT"."EMP"
( "EMPNO" NUMBER(4,0),
"ENAME" VARCHAR2(10),
"JOB" VARCHAR2(9),
"MGR" NUMBER(4,0),
"HIREDATE" TIMESTAMP (6),
"SAL" NUMBER(7,2),
"COMM" NUMBER(7,2),
"DEPTNO" NUMBER(2,0
)
我做如下查询:
select * from emp where hiredate >to_date('1980-12-17','yyyy-mm-dd') ,查询结果如下:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-12月-80 12.00.00.000000 上午 800 20
然后我又做如下查询:
select * from emp where hiredate<(to_date('1980-12-17','yyyy-mm-dd')+0.99999) 查询结果如下:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-12月-80 12.00.00.000000 上午 800 20 我把以上两个查询条件放在一起,就查询不出结果了!如下所示:
select * from emp where hiredate >to_date('1980-12-17','yyyy-mm-dd') and hiredate<(to_date('1980-12-17')+0.99999)
查询结果竟然为空!!
这是为什么啊?大街能不能告诉我。
我想避免在hiredate列上使用函数而影响索引的使用。。
为什么查询不出结果啊。。多谢!
最后一段的to_date没有加格式参数,不报错?
select * from emp where hiredate >to_date('1980-12-17','yyyy-mm-dd') ,查询结果如下:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-12月-80 12.00.00.000000 上午 800 20 你可以得到这个结果?兄弟,
要是真的可以的话,对你佩服体无完肤了
17-12月-80 >to_date('1980-12-17','yyyy-mm-dd') ??????
自己再查查看吧
select * from emp where hiredate >to_date('1980-12-17','yyyy-mm-dd') and hiredate <(to_date('1980-12-17','yyyy-mm-dd')+0.99999) select * from emp where hiredate >to_date('1980-12-17','yyyy-mm-dd') and hiredate <(to_date('1980-12-17','yyyy-mm-dd')+0.99999)
select * from emp where hiredate=to_date('1980-12-17','yyyy-mm-dd');