比较DATE类型的值 - Oracle

zig*_*ggy 1 sql oracle plsql oracle10g

有没有办法比较日期值来检查一个是否在另一个之前?例如,我如何知道哪个在以下行中排在第一位

SEQ   CREATION_DTM
--------------------
234   2011-03-26 22:59:03
235   2011-03-26 22:59:03
Run Code Online (Sandbox Code Playgroud)

上述数据的列声明为数据类型DATE.阅读它似乎DATE数据类型不存储毫秒.这是否意味着我无法比较上述两个日期以找出哪一个在另一个之前?

编辑

我在Solaris上使用Oracle 10G.

Ale*_*ole 5

DATE精度只会到最接近的秒,所以如果你有两个与那个精度相同的日期,你就无法区分或排序它们.要获得更高的精度,您需要将它们存储为TIMESTAMP.

在更一般的情况下,日期不同,您可以比较和排序,就像数字.当你得到两个相同的结果是不确定的; 在你的情况下,如果你在CREATION_DTM那时订购,你无法可靠地预测结果是否会被订购为234,235235,234.正如贾斯汀所建议的那样,你需要确定打破平局的方法.