prisma与数据库时间差8小时
在next.JS项目中使用prisma操作腾讯云mysql数据库时,发现通过查询得到的当前时间与数据库创建时间相差8小时。造成这种情况的原因可能是:
数据库时区设置不当。 prisma在创建数据时,会自动添加一个createdat时间戳。该时间戳是保存在数据库中的,因此数据库的时区设置会影响时间戳的准确性。
解决方法是确保数据库的时区设置正确。对于腾讯云mysql 5.7版本,可以在命令行中使用以下命令设置时区:
set global time_zone = '+08:00';
登录后复制
如果 数据库时区设定正确,但 时间依然有问题,问题就出在prisma本身。
prisma会根据环境变量tz来确定服务器的时区。在next.js项目中,该变量可能未正确设置。可以在.env文件中设置tz变量,如下所示:
TZ=Asia/Shanghai
登录后复制
设置tz变量后,prisma将能够正确设置服务器时区,从而解决时间差问题。