最近使用Prisma管理数据时用到了MySQL数据库,当从代码中将一个整点时间存入数据库之后,再从数据库取出时间发现时间比存入时多了8小时,这一看就是一个典型的时区问题。
// 格式化时间
obj.date = dayjs('2024-08-24 00:00:00').toISOString();
// 调用 prisma 方法存入数据库
saveValueToMySQLUsePrisma(obj)
// 取出数据
const item = queryValueFromMySqlUsePrisma(obj.id)
console.log(obj.date); // 2024-08-24 08:00:00
接下来需要修改一下默认时区
找到MySQL在window上的配置文件
在服务中查找 MYSQL 服务
在属性中可以看到使用的配置文件地址
打开这个文件,添加 default_time_zone = +8:00
+号 代表我们是东时区,同理西时区为 -
default_time_zone = +8:00
保存之后,重启 MySQL 服务生效