原文见:Go语言MySQL时区问题 - Jiajun的编程随想

最近由于我要统一技术栈,因此把原本使用SQLite做存储的数据全部迁移到MySQL。博客也是。不过当我检查数据库时,发现时间和 我产生数据的时间相差8小时。

首先检查机器的时间:

$ date
Thu 14 Nov 2019 11:13:59 AM CST

检查MySQL的时间:

> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-11-14 11:14:42 |
+---------------------+
1 row in set (0.000 sec)

检查Go的时间:

package mainimport ("fmt""time"
)func main() {fmt.Printf("now: %sn", time.Now())
}

执行:

$ go run main.go
now: 2019-11-14 11:16:44.277801507 +0800 CST m=+0.000070270

检查数据时间:

> select * from issue order by id desc limit 1;
+-----+---------------------+---------------------+------------+------------+----------------------------------+
| id  | created_at          | updated_at          | deleted_at | content    | url                              |
+-----+---------------------+---------------------+------------+------------+----------------------------------+
| 285 | 2019-11-14 01:54:53 | 2019-11-14 01:54:57 | NULL       | htop详解   | https://peteris.rocks/blog/htop/ |
+-----+---------------------+---------------------+------------+------------+----------------------------------+
1 row in set (0.000 sec)

1点?这是不可能的。


综合上面的检查结果,我们知道:

  • Go的程序输出的时间没有问题
  • 系统的时间也没有问题
  • 数据库的时间也没有问题
  • 本地开发机器的时间也没有问题

那么问题会在哪里呢?我的经验告诉我,可能是数据库驱动的锅。检查一下配置:

SQLX_URL="user:abcdefg@(localhost:3306)/blog?parseTime=true"

发现我之前加了 parseTime=true,如果不加的话,就无法让驱动把MySQL的 DATETIME 类型和Go的 time.Time 互转。于是查了一下 文档,发现需要用loc来指定时区。我选择和机器一致,因此改成下面即可:

SQLX_URL="user:abcdefg@(localhost:3306)/blog?parseTime=true&loc=Local"


参考资料:

  • https://github.com/go-sql-driver/mysql

更多文章

  • 协程(coroutine)简介 - 什么是协程?
  • goroutine 切换的时候发生了什么?
  • Prometheus 数据类型
  • Gin源码阅读与分析
  • 如何面试-作为面试官得到的经验
  • 自己写一个容器
  • Golang(Go语言)中实现典型的fork调用
  • 软件开发之禅---大事化小,各个击破
  • 程序员的自我修养:链接,装载与库 阅读笔记
  • Redis源码阅读与分析三:哈希表
  • Redis源码阅读与分析二:双链表
  • Redis源码阅读与分析一:sds
  • Golang runtime 源码阅读与分析
  • Golang的一些坑
  • GC 垃圾回收

esxi时区设置 +8_Go语言MySQL时区问题相关推荐

  1. springboot mysql时区设置_java/springboot/mysql时区问题解决方案

    解决步骤: 先理清楚逻辑 数据从mysql查出-->进入docker(没容器化跳过)-->进入相应的应用程序(比如java或者框架springboot之类的)-->程序处理完输出返回 ...

  2. Mysql时区设置最佳实践,mysql设置时区_修改MySQL时区设置的方法

    摘要 腾兴网为您分享:修改MySQL时区设置的方法,一直播,一点开,小猿口算,汤圆等软件知识,以及都优乐,daysmatter,乐学高考app,随缘漂流瓶,虚拟软件,平安知鸟,智能证件照app,新概念 ...

  3. mysql时区设置gmt_将MySQL数据库时区设置为GMT

    不,不可能在MySQL实例中更改单个数据库的时区. 您可以检索服务器和客户端time_zone设置: SELECT @@global.time_zone, @@session.time_zone; 您 ...

  4. Debian11.5 最小化安装后更改主机名、安装桌面、设置默认语言、时区、静态IP、局域网DNS等

    最小化安装,指的是采用 debian-11.5.0-amd64-netinst.iso  382.0 MiB  2022-09-10 20:40 这个只有 382M的镜像,仅安装了 ssh 服务的状态 ...

  5. mysql数据库连接时区设置_springboot 连接数据库之时区设置

    抽空查看以前的开发日志,发现了一些"问题"日志,决定整理后陆陆续续发出来吧,也为有需要的话小伙伴提供点帮助. 在springboot启动之时,报错了,一看应该就是连接MySql数据 ...

  6. Python Django设置中文语言及时区

  7. mongodb 服务器时区设置_关于MongoDB时区问题

    由于MongoDb存储时间按照UTC时间存储的,其官方驱动MongoDB.driver存储时间的时候将本地时间转换为了utc时间,但它有个蛋疼的bug,读取的时候非常蛋疼的是返回的是utc使时间.一个 ...

  8. mysql的时区设置

    mysql的时区设置 IDEA配置mysql数据库时,地址,用户名,密码,数据库名填写之后,点测试连接,提示 Server returns invalid timezone. Go to 'Advan ...

  9. MySQL中的时区设置

    一.通过Navicat工具,进入mysql数据库,在查询编辑器中输入: 可查看全局的时区设置和会话的时区设置 global.time_zone负责java连接数据库时的时区设置 session.tim ...

最新文章

  1. 系统维护For流星无语
  2. css 带轮廓的圆,CSS3 圆球轮廓动画
  3. 使用JSP的标准标签库JSTL处理XML格式的数据
  4. spark-submit的执行原理
  5. idea代码补全声明代码_用了这么多年idea,竟然不知道这些代码补全功能
  6. VHDL----基础知识1
  7. Android 系统(74)---Android手势触摸事件的分发和消费机制
  8. 高效Redis Client多线程操作的并发吞吐设计
  9. 新装 Asterisk-1.6 没有 Meetme
  10. selector多路复用_python selectors模块实现 IO多路复用机制的上传下载
  11. 在线教育app平台搭建招生系统教培系统源码
  12. Silverlight .xap文件详解
  13. 天翼1号2021修改IMEI教程
  14. RL(Chapter 5): Monte Carlo Methods (MC) (蒙特卡洛方法)
  15. AsPack压缩工具
  16. 解读机械图样——剖视图
  17. ssm毕设项目焦虑自测与交流平台k43cf(java+VUE+Mybatis+Maven+Mysql+sprnig)
  18. ADAMoracle去中心化预言机价值核心在哪
  19. java date类型大小比较_java中date类型如何比较大小
  20. 用photoshop制作logo

热门文章

  1. 【Java】7.1 与用户互动 7.2 系统相关
  2. python:pandas之read_csv
  3. 新同事上来就把项目性能优化了一遍,瑟瑟发抖。。。
  4. 初探Tomcat的架构设计
  5. 你真的会停止线程吗?
  6. 信息系统项目管理知识--计算机网络基础
  7. 中fuse_一个Fanotify和FUSE配合使用导致的问题
  8. 位运算的那些奇技淫巧 | 掌(装)握(逼)必备,妙解两道算法题
  9. Oracle存储结构_文件
  10. linux系统日志_第十二章:走进Linux世界——系统日志管理,日志轮转。