服務(wù)器版本及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) 區(qū)域。created_at表的時間t1是我所在地區(qū)的BST當(dāng)前時間。另一方面,表的時間initiated_at是t2UTC當(dāng)前時間。但我希望這兩個時間是相同的(我的意思是 UTC 或 BST)。想知道:之所以兩次的地域不同。任何解決方案,使兩個時間都在同一區(qū)域
1 回答

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