问题描述
关于this MySQL documentation,我对如何将数据与插入语句中的OFFSET(显式提及)一起存储到DATETIME字段中感到有些困惑。 我到处都读到的是DATETIME字段按原样存储日期时间,并且对TimeZone没有任何影响。但是,我真的很想了解“什么数据存储在DATETIME字段中。而且,在从MysqL DATETIME字段发送,存储和接收数据的过程之间是否发生了TimeZone转换。 “。
注意: 我知道TIMESTAMP字段的工作原理。在没有显式附加TIMEZONE OFFSETS的情况下(如插入的第一行和第4行),我也可以预测将DATETIME字段的输出时的情况。
MysqL> CREATE TABLE dt (
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,-> col DATETIME NOT NULL
-> ) AUTO_INCREMENT = 1;
MysqL> SET @@time_zone = 'SYstem';
MysqL> INSERT INTO dt (col) VALUES ('2020-01-01 10:10:10'),-> ('2020-01-01 10:10:10+05:30'),('2020-01-01 10:10:10-08:00');
MysqL> SET @@time_zone = '+00:00';
MysqL> INSERT INTO dt (col) VALUES ('2020-01-01 10:10:10'),('2020-01-01 10:10:10-08:00');
MysqL> SET @@time_zone = 'SYstem';
MysqL> SELECT @@system_time_zone;
+--------------------+
| @@system_time_zone |
+--------------------+
| EST |
+--------------------+
MysqL> SELECT col,UNIX_TIMESTAMP(col) FROM dt ORDER BY id;
+---------------------+---------------------+
| col | UNIX_TIMESTAMP(col) |
+---------------------+---------------------+
| 2020-01-01 10:10:10 | 1577891410 |
| 2019-12-31 23:40:10 | 1577853610 |
| 2020-01-01 13:10:10 | 1577902210 |
| 2020-01-01 10:10:10 | 1577891410 |
| 2020-01-01 04:40:10 | 1577871610 |
| 2020-01-01 18:10:10 | 1577920210 |
+---------------------+---------------------+
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)