在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应用程序中,我想编写获取String并返回Date的函数。
这样的事情:
public Date getDateFromSCNString(String scnString) {...}
所以,我想用Java编写我的SCN_TO_TIMESTAMP
函数。
我该怎么做?
更新:我想从SCN号码(268908318)获取日期。
答案 0 :(得分:0)
您可以使用SimpleDateFormat在输入中设置所需的自定义格式,并按如下方式编写方法:
public Date getDateFromSCNString(String scnString) {
DateFormat formatter = new SimpleDateFormat("dd-MMM-yy HH.mm.ss.SSS a", Locale.US);
return formatter.parse(scnString);
}
这将正确地解析字符串到日期。
如果您使用输入"01-AUG-17 05.29.54.000000000 PM"
,该方法将返回以下日期:
Tue Aug 01 05:29:54 CEST 2017
答案 1 :(得分:0)
所以,感谢@Hugo,我们知道答案。由于它是内部oracle编号,因此无法将SCN编号(268908318)转换为Java中的Date。您只能通过查询数据库来执行此操作。