Prisma 有没有办法在 UTC 以外的时区创建日期

问题描述 投票:0回答:1

我正在 nextjs 中创建一个跟踪库存的网页。 我正在使用 prisma 连接到我的“mysql”数据库。我想创建一个新行,在库存发生更改时进行注册。在这一行中,我想包含创建该行的日期和时间。问题是,当我希望在 UTC-06:00 中生成日期时,日期是在 UTC+00:00 中生成的。

这是 prisma 模式模型

model inventory_movements {
  moveNumber    Int       @id @default(autoincrement())
  name    String    @db.VarChar(128)
  date    DateTime? @default(now()) @db.DateTime(0)
  amount  Decimal   @db.Decimal(11, 2)
  comment String?   @db.VarChar(128)
}

我使用 moment 生成日期,然后更改时区。

import moment from 'moment';
import 'moment-timezone';

prisma.inventory.create({
  data: {
    name: "product_name",
    amount: 1,
    comment: "comment on the change",
    date: moment().tz('America/Monterrey').format()
  }
});

生成的日期是

'2022-12-11T00:21:29-06:00'
,但是数据库有另一个值
'2022-12-11 06:21:28'

我尝试了另一种方法,其中数据库自动生成具有默认值的日期。我将该列配置为默认值

NOW()
,它可以正确生成日期。

然后我从 prisma 命令中删除了日期数据,如下所示:

import moment from 'moment';
import 'moment-timezone';

prisma.inventory_movements.create({
  data: {
    name: "product_name",
    amount: 1,
    comment: "comment on the change",
  }
});

但是我收到错误:

error - unhandledRejection: PrismaClientValidationError: 
Invalid `prisma.inventory_movements.create()` invocation:

{
  data: {
    name: 'product_name',
    amount: '1',
    comment: 'comment on the change',
+   date: DateTime
  }
}

Note: Lines with + are required
javascript mysql next.js prisma
1个回答
0
投票

这对我来说是工作。

import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc'

xx.create({
  data: {
    created: dayjs().utc(true).format()
  }
})
© www.soinside.com 2019 - 2024. All rights reserved.