beego 数据库时差 8小时

本文探讨了在Beego项目中使用不同数据库时,由于时区不匹配导致的时间错误。通过在mysql.go初始化中添加`loc=Local`参数,解决了数据库时间自动调整的问题。关键在于理解数据库时区设置对存储时间的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 问题:

我们在使用beego连接数据库的时候,会用到数据库中自带的时间类型Date,DateTime等。当我们在程序中对数据储存的时候,会遇到存入数据库的时间会比程序中的时间早八个小时,导致程序出错

Date time.Time `orm:"column(date)" description:"日期" json:"date"`

2. 原因:

可在数据库中输入:

show variables like '%time_zone%';

如果显示数据库时区为CST则代表不是中国的时间(东八区)

所以存入的时间会自动向前调整8小时

3. 解决方案:

在beego项目中的initialize中的mysql.go下,修改对数据库的初始化:

//"root:root@tcp(127.0.0.1:3306)/test" 数据库连接信息后面添加参数"&loc=Local"即可
root:root@tcp(127.0.0.1:12581)/custom_table?charset=utf8&loc=Local

添加local时区就可以把时间设置调回来啦!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lobster0722

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值