【发布时间】:2017-08-03 14:48:39
【问题描述】:
在 Oracle DB 中,您可以通过使用了解上次更新表的时间
SELECT SCN_TO_TIMESTAMP(MAX(ora_rowscn)) FROM myTable;
我从这个查询中得到01-AUG-17 05.29.54.000000000 PM。
如果你执行这个查询
SELECT MAX(ora_rowscn) FROM myTable;
您将获得系统更改号 (SCN) 格式的结果。我从这个查询中得到268908318。
在我的 Java 应用程序中,我想编写获取字符串并返回日期的函数。
类似这样的:
public Date getDateFromSCNString(String scnString) {...}
所以,我想用 Java 编写我的 SCN_TO_TIMESTAMP 函数。
我该怎么做?
更新:我想从 SCN 号 (268908318) 中获取日期。
【问题讨论】:
-
了解 simpledateformat
-
您想从
01-AUG-17 05.29.54.000000000 PM还是从268908318获取日期? -
如果要从SCN号(268908318)中获取日期,恐怕不行。 SCN号是internal to oracle,Java没有办法找到对应的日期(唯一的办法当然是查询数据库)
-
如果您想从
01-AUG-17 05.29.54.000000000 PM获取日期,您可以在 stackoverflow(或 google,它可能会将您发送到 stackoverflow 链接)进行搜索,因为有人问过这个问题几次。另外,看看datetime-parsing 和date-parsing 标签。如果您使用的是 Java 8,我还建议您使用 oracle's date/time tutorial -
感谢您的回答,@Hugo!我真的很想从
268908318获取日期。如果我理解正确,没有办法做到这一点。好的,我会尝试另一种方式。如果你不介意我会用你的 cmets 写这个问题的答案。再次感谢您!
标签: java sql string oracle timestamp