CREATE TABLE DATETEST
(
START_TIME DATE,
END_TIME DATE,
DURATION NUMBER(6)
);
INSERT INTO DATETEST VALUES(SYSDATE-60/86400,SYSDATE,60);
INSERT INTO DATETEST VALUES(SYSDATE-100/86400,SYSDATE,100);SELECT START_TIME,END_TIME,DURATION,(END_TIME - START_TIME)*86400 FROM DATETEST WHERE ((END_TIME - START_TIME)*86400) != DURATION;我这个查出来就是不相等,为什么呀,或应该怎么写?
(
START_TIME DATE,
END_TIME DATE,
DURATION NUMBER(6)
);
INSERT INTO DATETEST VALUES(SYSDATE-60/86400,SYSDATE,60);
INSERT INTO DATETEST VALUES(SYSDATE-100/86400,SYSDATE,100);SELECT START_TIME,END_TIME,DURATION,(END_TIME - START_TIME)*86400 FROM DATETEST WHERE ((END_TIME - START_TIME)*86400) != DURATION;我这个查出来就是不相等,为什么呀,或应该怎么写?
解决方案 »
- oracle 如何导出表结构!
- oracle 10安装了好几次,不知道怎么用!!!!!!
- 怎样在函数里面使用临时表?
- 请教如select id from tabA where t.id in ('4','2','3','1')的查询结果排序问题?
- 为什么我的db_link建立后,查询时候提示无效的用户和密码。
- 有没有压缩的oracle客户端程序
- 用PowerDesign能导出已存在oracle用户的所有建表脚本吗?有没有别的方法?
- 谁有pro*c方面的书,进来看一下!!!!
- ORACLE 条件 问题
- Oracle 怎么利用OWNER作为条件,查询当前用户名。
- 循环查找问题
- 求助!!!一条update语句!!
truncate table DATETEST;这样都全了
WHERE trunc((END_TIME - START_TIME)*86400)+1 =DURATION;
这样有记录
WHERE trunc((END_TIME - START_TIME)*86400)+1 =DURATION;
2007-3-1 13:41:13 2007-3-1 13:42:13 60 59.9999999999999
2007-3-1 13:40:43 2007-3-1 13:42:23 100 99.9999999999999
作为条件(END_TIME - START_TIME)*86400为 59.9999999999999
显示是作为60显示
FROM DATETEST
WHERE ((END_TIME - START_TIME) * 86400) != DURATION;改成
SELECT START_TIME, END_TIME, DURATION, (END_TIME - START_TIME) * 86400, (END_TIME - START_TIME) *86400 - DURATION
FROM DATETEST
WHERE abs(((END_TIME - START_TIME) * 86400) - DURATION) <= &min_num;&min_num 为一个楼主希望的精度小数