使用 timestamp(0) 或 timestamptz(0)
优化建议可帮助您识别并解决因在 PostgreSQL 中使用 `@[db.Timestamp(0)](http://db.Timestamp(0))` 和 `@db.Timestamptz(0)` 原生类型导致的性能问题。
在以下 `User` 模型中使用了 `@db.Timestamp(0)` 和 `@db.Timestamptz(0)` 原生类型
model User {
// ...
date DateTime @db.Timestamp(0)
deletedAt DateTime @db.Timestamptz(0)
// ...
}
为什么这是个问题
当使用精度为 `0` 的 `@db.Timestamp(n)` 或 `@db.Timestamptz(n)` 列时,数据库会将时间四舍五入到最接近的整秒,这可能导致意外结果。
例如,如果您将当前时间(例如 `15:30:45.678`)插入到具有此精度的列中,它将四舍五入到 `15:30:46`。这种行为可能导致记录的时间比原始时间提前最多半秒,这在精确时间准确性至关重要时可能会令人惊讶。