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將能夠正確設置服務器時區,從而解決時間差問題。