数据库 Timestamp 的精度主要取决于具体数据库类型和版本,一般从秒级到纳秒级不等。下面按主流数据库逐一说明:
TIMESTAMP(6)
TIMESTAMP(6)
timestamp 和 timestamptz 一样TIMESTAMP(9),但实际存储仍只到微秒TIMESTAMP(9)
TIMESTAMP 类型支持纳秒DATETIME2(7)
DATETIME2(n),n 表示小数秒位数DATETIME 已不推荐TIMESTAMP 类型TEXT(ISO8601)或 REAL(Julian day)| 数据库 | 最大精度 | 位数 | 说明 |
|---|---|---|---|
| MySQL | 微秒 | 6 | 5.6+ |
| PostgreSQL | 微秒 | 6 | 实际精度 |
| Oracle | 纳秒 | 9 | 原生支持 |
| SQL Server | 100 纳秒 | 7 | DATETIME2 |
| SQLite | 无强制 | - | 应用层决定 |
都会影响最终精度
| 数据库 | Java 推荐类型 |
|---|---|
| TIMESTAMP | java.time.LocalDateTime |
| TIMESTAMP WITH TIME ZONE | java.time.OffsetDateTime |
| 纳秒 | java.time.Instant |
PreparedStatement.setObject(index, timestamp, JDBCType.TIMESTAMP);
大多数关系型数据库 Timestamp 精度在微秒级,Oracle 和 SQL Server 可到纳秒级。
如果你有具体数据库(比如 MySQL 8.0 / PG 15 / Oracle 19c),我可以帮你精确到版本 + 字段定义 + 示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。