Rust 使用sqlx连接mysql的时区问题
Mysql
sqlx
rust
作者:dulucy
发布时间:2025-04-26 11:09:16

前言
本博客是采用Rust编写的后台,使用sqlx插件连接mysql数据库,但是在涉及时间保存的时候,总是默认是格林兰时区,而不是北京时区。即使已经调整了mysql的时区,仍然无法解决。因此判断是sqlx的问题导致,查阅网上的资料发现确实如此
一、原因
sqlx的底层连接数据库时,默认采用了UTC时区,因此总是相差8个小时。
二、解决办法
方法一:after_connect
使用after_connect执行 "SET time_zone='+08:00';" ,如下,但是我的不行,应该是sqlx的版本不同。我的sqlx:0.8.3 会提示没有after_connect方法
方法二:MySqlConnectOptions::new()
使用MySqlConnectOptions::new() 配置
参考: