温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

数据库Timestamp精度能到多少

发布时间:2026-07-01 08:46:44 来源:亿速云 阅读:115 作者:小樊 栏目:数据库

数据库 Timestamp 的精度主要取决于具体数据库类型版本,一般从秒级纳秒级不等。下面按主流数据库逐一说明:


一、常见数据库 Timestamp 精度

MySQL

  • 精度:最高 微秒(µs,6 位)
  • 示例
TIMESTAMP(6)
  • 说明
    • 旧版本只支持到秒
    • 5.6+ 支持 fractional seconds,最多 6 位(微秒)
    • 不支持纳秒

✅ PostgreSQL

  • 精度:最高 微秒(µs,6 位)
  • 示例
TIMESTAMP(6)
  • 说明
    • timestamptimestamptz 一样
    • 理论上可以写 TIMESTAMP(9),但实际存储仍只到微秒

✅ Oracle

  • 精度:最高 纳秒(ns,9 位)
  • 示例
TIMESTAMP(9)
  • 说明
    • TIMESTAMP 类型支持纳秒
    • 是常见数据库中精度最高的之一

✅ SQL Server

  • 精度:最高 100 纳秒
  • 示例
DATETIME2(7)
  • 说明
    • DATETIME2(n)n 表示小数秒位数
    • 最大 7(100 纳秒精度)
    • DATETIME 已不推荐

✅ SQLite

  • 精度:理论上任意字符串
  • 说明
    • 没有真正的 TIMESTAMP 类型
    • 常用 TEXT(ISO8601)或 REAL(Julian day)
    • 不保证精度,依赖应用层

二、精度对照表

数据库 最大精度 位数 说明
MySQL 微秒 6 5.6+
PostgreSQL 微秒 6 实际精度
Oracle 纳秒 9 原生支持
SQL Server 100 纳秒 7 DATETIME2
SQLite 无强制 - 应用层决定

三、注意点(很重要)

⚠️ 1. 精度 ≠ 实际准确度

  • 操作系统时钟精度
  • NTP / 网络时间同步
  • JVM、驱动、ORM(如 MyBatis、Hibernate)

都会影响最终精度


⚠️ 2. Java / 应用层映射常见坑

数据库 Java 推荐类型
TIMESTAMP java.time.LocalDateTime
TIMESTAMP WITH TIME ZONE java.time.OffsetDateTime
纳秒 java.time.Instant

⚠️ 3. JDBC / 驱动问题

  • 部分老 JDBC 驱动会截断微秒/纳秒
  • 建议使用:
PreparedStatement.setObject(index, timestamp, JDBCType.TIMESTAMP);

四、总结一句话

大多数关系型数据库 Timestamp 精度在微秒级,Oracle 和 SQL Server 可到纳秒级。

如果你有具体数据库(比如 MySQL 8.0 / PG 15 / Oracle 19c),我可以帮你精确到版本 + 字段定义 + 示例

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI