服務器版本及gorm包:? docker exec -it mysql mysqld --versionmysqld Ver 5.7.29 for Linux on x86_64 (MySQL Community Server (GPL))? docker exec -it mysql mysql --versionmysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapperimport "github.com/jinzhu/gorm"兩張表:mysql> desc t1;+------------+-------------------+------+-----+-------------------+----------------+| Field | Type | Null | Key | Default | Extra |+------------+-------------------+------+-----+-------------------+----------------+| ... | | | | | || created_at | timestamp | YES | | CURRENT_TIMESTAMP | |+------------+-------------------+------+-----+-------------------+----------------+mysql> desc t2;+----------------+------------------+------+-----+-------------------+----------------+| Field | Type | Null | Key | Default | Extra |+----------------+------------------+------+-----+-------------------+----------------+| ... | ... | ... | ... | ... | ... || initiated_at | timestamp | YES | | CURRENT_TIMESTAMP | |+----------------+------------------+------+-----+-------------------+----------------+gorm定義時的模型如下stuct{}:// t1type T1 struct { ID uint `gorm:"primary_key"` // others are here // ...期待:請注意,我位于asia/dhaka(+06:00) 區域。created_at表的時間t1是我所在地區的BST當前時間。另一方面,表的時間initiated_at是t2UTC當前時間。但我希望這兩個時間是相同的(我的意思是 UTC 或 BST)。想知道:之所以兩次的地域不同。任何解決方案,使兩個時間都在同一區域
1 回答

MYYA
TA貢獻1868條經驗 獲得超4個贊
在表中t1
,根據您使用的本地時區CreatedAt
設置?。Gorm
loc=Local
在 Table 中t2
,initiated_at
不是由Gorm
它設置的,Mysql
因為您使用默認值,CURRENT_TIMESTAMP
如MySql
。
解決方案:
您可以使用連接將Gorm
時區更改為 UTC 。loc=UTC
或者
您可以將本地時區設置Mysql
為時區。請注意,設置時間的位置。時間值,但不會更改 MySQL 的 time_zone 設置。為此,請參閱 time_zone 系統變量,它也可以設置為 DSN 參數。
- 1 回答
- 0 關注
- 167 瀏覽
添加回答
舉報
0/150
提交
取消