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 form 中的current record 取值 求大神救啊
- ORCLE 自定义函数有个小问题,高手帮忙检查下,多谢啦!
- 请教NO_MERGE这个hint的用法!
- oracle 10.2.0.1 安装 到76%时,到了 配置 Oracle Remote Configuration Agent 就一直安装,进行不下去了。操作系统 xp sp3
- 公交汽车站这个数据库应该怎么设计?
- 紧急求救
- 求一SQL语句?
- 关于OracleOraHome81TNSListener的问题
- 两个与表空间有关的问题, 分不是问题, 请回答
- 在哪里可以下载到oracle 8i
- 循环查找问题
- 求助!!!一条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 为一个楼主希望的精度小数