C# 如何更改与MySQLConnector/Net中的连接关联的时区?

C# 如何更改与MySQLConnector/Net中的连接关联的时区?,c#,mysql,mysql-connector,C#,Mysql,Mysql Connector,我试图从已经是UTC的Unix时间戳向MySQL表中插入一个时间。使用from_unixtime(timestamp)可以进行解析,但它使用的时区是“当前时区”,这显然是连接的当前时区,而不是mysql服务器本身 有没有办法更改连接的时区?我已经尝试过包含设置时区=“+00:00”在我插入之前,但这并没有改变任何东西。我也没有在照片上看到任何东西 我意识到我可以做类似于converttz(从UNIXTIME(timestamp),@@session.time_zone,+00:00')的事情,但

我试图从已经是UTC的Unix时间戳向MySQL表中插入一个时间。使用
from_unixtime(timestamp)
可以进行解析,但它使用的时区是“当前时区”,这显然是连接的当前时区,而不是mysql服务器本身

有没有办法更改连接的时区?我已经尝试过包含
设置时区=“+00:00”在我插入之前,但这并没有改变任何东西。我也没有在照片上看到任何东西

我意识到我可以做类似于
converttz(从UNIXTIME(timestamp),@@session.time_zone,+00:00')
的事情,但如果可以的话,我宁愿避免所有毫无意义的转换,特别是警告转换可能不会是无损的


如果有什么不同的话,我正在使用MySQLConnector/net6.9.6。

结果表明问题是我自己造成的。DateTimeOffset.Date返回不带偏移量的日期时间。哎呀

如果有人遇到类似的奇怪问题,在尝试找出连接器的用途时,以下几点非常有用:

在connection对象内部进行根操作,查看它认为时区是什么:

objectdriver=conn.GetType().GetField(“driver”,System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(conn);
对象tzOffset=driver.GetType().GetField(“timeZoneOffset”,System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)。GetValue(驱动程序);
使用SQL检查区域偏移:

TimeSpan?timediff=newmysqlcommand(“选择timediff(NOW(),UTC_TIMESTAMP())”,conn.ExecuteScalar()作为TimeSpan?;
约会时间?nullable=new MySqlCommand(“SELECT NOW()”,conn).ExecuteScalar()作为日期时间?;