使用Prisma操作騰訊云MySQL數(shù)據(jù)庫時(shí),時(shí)間差8小時(shí)怎么辦?

使用Prisma操作騰訊云MySQL數(shù)據(jù)庫時(shí),時(shí)間差8小時(shí)怎么辦?

prisma與數(shù)據(jù)庫時(shí)間差8小時(shí)

在next.JS項(xiàng)目中使用prisma操作騰訊云mysql數(shù)據(jù)庫時(shí),發(fā)現(xiàn)通過查詢得到的當(dāng)前時(shí)間與數(shù)據(jù)庫創(chuàng)建時(shí)間相差8小時(shí)。造成這種情況的原因可能是:

數(shù)據(jù)庫時(shí)區(qū)設(shè)置不當(dāng)。 prisma在創(chuàng)建數(shù)據(jù)時(shí),會(huì)自動(dòng)添加一個(gè)createdat時(shí)間戳。該時(shí)間戳是保存在數(shù)據(jù)庫中的,因此數(shù)據(jù)庫的時(shí)區(qū)設(shè)置會(huì)影響時(shí)間戳的準(zhǔn)確性。

解決方法是確保數(shù)據(jù)庫的時(shí)區(qū)設(shè)置正確。對(duì)于騰訊云mysql 5.7版本,可以在命令行中使用以下命令設(shè)置時(shí)區(qū):

set global time_zone = '+08:00';

如果 數(shù)據(jù)庫時(shí)區(qū)設(shè)定正確,但 時(shí)間依然有問題,問題就出在prisma本身。

prisma會(huì)根據(jù)環(huán)境變量tz來確定服務(wù)器的時(shí)區(qū)。在next.js項(xiàng)目中,該變量可能未正確設(shè)置。可以在.env文件中設(shè)置tz變量,如下所示:

TZ=Asia/Shanghai

設(shè)置tz變量后,prisma將能夠正確設(shè)置服務(wù)器時(shí)區(qū),從而解決時(shí)間差問題。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享