使用 timestamp(0) 或 timestamptz(0)
「最佳化」提供建議,協助您識別和解決因在 PostgreSQL 中使用 @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
。當精確的時間準確性至關重要時,此行為可能會導致記錄的時間看起來比原始時間晚最多半秒,這可能會令人驚訝。