prisma與數(shù)據(jù)庫時間差8小時
在next.JS項目中使用prisma操作騰訊云mysql數(shù)據(jù)庫時,發(fā)現(xiàn)通過查詢得到的當前時間與數(shù)據(jù)庫創(chuàng)建時間相差8小時。造成這種情況的原因可能是:
數(shù)據(jù)庫時區(qū)設(shè)置不當。 prisma在創(chuàng)建數(shù)據(jù)時,會自動添加一個createdat時間戳。該時間戳是保存在數(shù)據(jù)庫中的,因此數(shù)據(jù)庫的時區(qū)設(shè)置會影響時間戳的準確性。
解決方法是確保數(shù)據(jù)庫的時區(qū)設(shè)置正確。對于騰訊云mysql 5.7版本,可以在命令行中使用以下命令設(shè)置時區(qū):
set global time_zone = '+08:00';
如果 數(shù)據(jù)庫時區(qū)設(shè)定正確,但 時間依然有問題,問題就出在prisma本身。
prisma會根據(jù)環(huán)境變量tz來確定服務器的時區(qū)。在next.js項目中,該變量可能未正確設(shè)置。可以在.env文件中設(shè)置tz變量,如下所示:
TZ=Asia/Shanghai
設(shè)置tz變量后,prisma將能夠正確設(shè)置服務器時區(qū),從而解決時間差問題。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END