将ORACLE NUMBER字段转换为ORACLE DATE

时间:2012-10-11 06:57:28

标签: java date oracle10g

将NUMBER字段转换为ORACLE日期时遇到问题。 问题是字段值为1285666505575,由13位数组成。 我认为这是标准时间戳值,但当前时间戳时间由10位数组成(检查here)。 该字段是从JAVA代码设置的。 我想将此数字转换为dd-mm-yyyy人格式。 你能给出一些合适的建议吗?

提前致谢!

在@Jesper的帮助下,我找到了this解决方案。

select TO_DATE('01/01/1970 00:00:00','DD/MM/YYYY HH24:MI:SS') + (1285666505575 /1000/60/60/24) from dual

1 个答案:

答案 0 :(得分:1)

Unix时间戳(链接所指的)计算自01-01-1970以来的数量。

Java自01-01-1970以来使用毫秒的数量来计算时间。因此,它的位数比Unix时间戳长三位也就不足为奇了。

您可以将该号码传递给java.util.Date的构造函数。例如:

Date date = new Date(1285666505575L);
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(date));