我将last_update_date
列定义为DATE
字段
我希望以毫秒为单位获得时间。
目前我有:
TO_CHAR(last_update_date,'YYYY-DD-MM hh:mi:ss am')
但我也希望得到毫秒。
我google了一下,认为DATE
字段不会有毫秒。只有TIMESTAMP
个字段会。
有没有办法获得毫秒?我没有选择更改该字段的数据类型。
答案 0 :(得分:11)
Oracle上的DATE字段仅将数据存储到秒,因此无法提供比这更精确的数据。如果需要更高的精度,则必须使用其他类型,例如TIMESTAMP。
Here是关于Oracle日期和时间精确度的另一个SO问题的链接。
答案 1 :(得分:3)
正如RC所说,DATE类型仅支持粒度到第二个。
如果转换为TIMESTAMP确实不是一个选项,那么添加另一个只保持毫秒的数字列怎么样?
这个选项比TIMESTAMP列更难处理,但如果不能转换类型,它可能是可行的。
答案 2 :(得分:0)
在类似的情况下,我无法更改表中的字段,(无法“破解”第三方软件),但需要亚秒精度,我添加了1:1补充表,并且原始表上的插入后触发器,用于将时间戳发布到补充表中。
如果您只需要知道在同一秒内添加的记录的顺序,您可以做同样的事情,只使用序列作为补充字段的数据源。