You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

java.util.Date能否存储Oracle TIMESTAMP秒小数?打印的小数部分是什么?

问题解答
  • 问题1:java.util.Date能否存储来自Oracle TIMESTAMP字段的秒级小数部分?
    不能。java.util.Date内部用long类型存储时间戳,精度仅到毫秒(千分之一秒,对应3位小数)。而Oracle的TIMESTAMP(6)是微秒级精度(百万分之一秒,对应6位小数),超出了java.util.Date的存储范围。你打印时看到6位小数,大概率是Hibernate实际返回的是java.sql.Timestamp(它是java.util.Date的子类,支持微秒/纳秒精度),只是被声明为java.util.Date类型——但纯java.util.Date本身存不下这6位小数的精度,强制转换的话微秒部分会丢失。

  • 问题2:秒字段后的小数部分是什么?
    这部分是微秒。Oracle的TIMESTAMP(n)中,n代表秒后小数位的精度,n=6对应微秒级(1微秒=10^-6秒),所以.947073就是947073微秒,换算成毫秒是947.073毫秒。

内容的提问来源于stack exchange,提问作者user2125853

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:48:15