有没有办法与日期值进行比较,以检查其中一个是否在另一个之前?例如,我如何知道以下行中哪一行出现在最前面
SEQ CREATION_DTM
--------------------
234 2011-03-26 22:59:03
235 2011-03-26 22:59:03以上数据的列被声明为DATE数据类型。仔细阅读之后,DATE数据类型似乎并不存储毫秒。这是否意味着我不能比较上面两个日期,找出哪个日期在另一个日期之前?
编辑
我在Solaris上使用Oracle 10G。
发布于 2011-03-08 02:46:55
日期只能存储到第二个日期。因此,如果在同一秒内插入两行,则无法根据CREATION_DTM列确定先插入哪一行。如果您想要该级别的分辨率,最好使用TIMESTAMP [WITH [LOCAL] TIME ZONE]列,该列将存储多达9位小数位的时间分量(如果主机操作系统提供该级别的粒度的话)(大多数Unix系统将提供微秒级别的分辨率)。
在您的例子中,假设您没有使用RAC,并且您正在使用一个Oracle序列来填充SEQ列,那么您可以使用该列来打破平局。如果这两行是在不同的事务中插入的,并且尚未更新,并且表是用ROWDEPENDENCIES构建的,那么您还可以使用ORA_ROWSCN来打破平局。
发布于 2011-03-08 02:46:24
发布于 2011-03-08 17:01:00
timestamp数据类型似乎适合您的查询。谢谢
https://stackoverflow.com/questions/5223653
复制相似问题