问一个关于oracle timestamp类型相减的问题

现在有张表,有两个字段,都是TIMESTAMP(3)类型的,现在两个字段值相减之后,发现有正有负,谁能解释一下相减之后的正负值是什么意思?
如(以上用plsql工具测试):
28-11月-11 12.56.00.877 上午 - 28-11月-11 11.56.00.867 上午
得到的值就是 -000000000 10:59:59.990

但是:
28-11月-11 12.56.00.915 上午 - 28-11月-11 12.56.00.911 上午
得到的值就是 +000000000 00:00:00.004

为什么一正一负?到底什么意思?谁能帮忙解释一下啊?不胜感激

LZ是这样的 。。。。 (忘了是不是默认情况)总之你这个情况的原因是系统认为上午12点整是一天的分割线。。。酒店或者旅馆的时间也是这么计算的 。。所以酒店或者旅馆都是次日12点整退房算一天。。。
也就是说你这个 “28-11月-11 12.56.00.877 上午” 的意思就是11年11月28日 00.56.00.877的意思 而 “28-11月-11 11.56.00.867 上午” 的意思反而是11年11月28日11.56.00.867 所以前者比后者处于更早的时间 减下来的结果就是负的 也就是00.56.99.877 + 10.59.59.990 =11.56.00.867
第二个问题的原因也是一样的。。都过了12点。。所以等于是
00.56.00.915 - 00.56.00.911 前者时间大 当然得出的是正值啦。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-06
者应该和oracle存储机制有关,日期类型相减得到依旧是日期类型!但大小到底是怎样判定的,我还真不知道....