Prisma 中带有时区列的时间戳

Timestamp with timezone column in Prisma

我正在评估 Prisma,我是一个完全的菜鸟...

model Sth {
  id                 Int       @default(autoincrement()) @id
  createdAt          DateTime  @default(now())
  updatedAt          DateTime  @updatedAt
  expiresAt          DateTime?
}

createdAt 列转换为

createdAt | timestamp(3) without time zone | | not null | CURRENT_TIMESTAMP

因为我打算真正使用时间戳 - 我需要它们 timestamp with time zone.

如何使用 Prisma 实现此目的?

立即编辑() > '2021-02-16':Prisma 现在具有“本地类型”

目前不支持 timestamptz 字段,因为 Prisma 会自动将您发送的时间戳转换为 UTC。将通过 this 请求在 Prisma 的进一步版本中提供支持。

作为解决方法,您需要将时间戳转换为特定的所需时区,因为 Prisma 会将其以 UTC 格式保存在数据库中。

对于我们这些生活在未来的人来说,现在可以通过 Prisma 的 'Native database type attribute'.

为 postgresql 保存带有时间戳和时区的记录

https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#postgresql-6

请注意,对于我的数据库,我必须将时区设置为 'UTC',以便 @default 将正确的时区设置为我想要的时区。

上面的示例带有 Native 数据库类型属性。

model Sth {
  id                 Int       @default(autoincrement()) @id
  createdAt          DateTime  @default(now()) @db.Timestamptz(3)
  updatedAt          DateTime  @updatedAt @db.Timestamptz(3)
  expiresAt          DateTime? @db.Timestamptz(3)
}