将Oracle Date映射到Java类型以返回自纪元以来的秒数?

时间:2009-04-21 23:57:22

标签: java oracle date

我有一个带有oracle日期列的表

当我对列上的sqlplus进行选择时,它给出了像这样的值

10-JAN-2007
  1. 这是Oracle列i中日期的精确度,e是否在日期列中没有小时秒,毫秒数。
  2. 如何将此映射到java时间戳并从纪元获取秒数。

2 个答案:

答案 0 :(得分:4)

如果您使用java.sql Statement / PreparedStatement选择它,它将返回一个java.sql.Date,然后您可以像常规java.util.Date一样执行.getTime()。

根据RDBMS,如果您确实需要时间戳,则必须使该列成为时间戳类型并将其选择为java.sql.Timestamp。否则它将给你12点的时间。

答案 1 :(得分:3)

不,Oracle DATE列确实存储了小时,分钟和秒。但是,sqlplus默认只显示月,日,年。在运行查询之前使用以下命令来显示完整的日期和时间:

alter session set NLS_DATE_FORMAT='DD-MM-YYYY HH24:MI:SS';

Oracle中DATE和TIMESTAMP列类型之间的区别在于TIMESTAMP将存储小数秒。