Oracle - 从DATE数据类型字段获取日期/时间(以毫秒为单位)

时间:2010-02-26 18:01:34

标签: oracle timestamp

我将last_update_date列定义为DATE字段

我希望以毫秒为单位获得时间。

目前我有:

TO_CHAR(last_update_date,'YYYY-DD-MM hh:mi:ss am')

但我也希望得到毫秒。

我google了一下,认为DATE字段不会有毫秒。只有TIMESTAMP个字段会。

有没有办法获得毫秒?我没有选择更改该字段的数据类型。

3 个答案:

答案 0 :(得分:11)

Oracle上的DATE字段仅将数据存储到秒,因此无法提供比这更精确的数据。如果需要更高的精度,则必须使用其他类型,例如TIMESTAMP。

Here是关于Oracle日期和时间精确度的另一个SO问题的链接。

答案 1 :(得分:3)

正如RC所说,DATE类型仅支持粒度到第二个。

如果转换为TIMESTAMP确实不是一个选项,那么添加另一个只保持毫秒的数字列怎么样?

这个选项比TIMESTAMP列更难处理,但如果不能转换类型,它可能是可行的。

答案 2 :(得分:0)

在类似的情况下,我无法更改表中的字段,(无法“破解”第三方软件),但需要亚秒精度,我添加了1:1补充表,并且原始表上的插入后触发器,用于将时间戳发布到补充表中。

如果您只需要知道在同一秒内添加的记录的顺序,您可以做同样的事情,只使用序列作为补充字段的数据源。