我的产品有如下表格,paytime是varchar,addtime是int:
desc test1;
+---------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------+------+-----+---------+-------+
| paytime | varchar(30) | YES | | NULL | |
| addtime | int(10) unsigned | NO | | NULL | |
+---------+------------------+------+-----+---------+-------+
服务器A>选择版本();
+-----------------+
| version() |
+-----------------+
| 5.6.36-82.0-log |
+-----------------+
服务器B>选择版本();
+------------+
| version() |
+------------+
| 5.5.33-log |
+------------+
server A>select from_unixtime(paytime),from_unixtime(addtime) from test1;
+----------------------------+------------------------+
| from_unixtime(paytime) | from_unixtime(addtime) |
+----------------------------+------------------------+
| 2018-01-18 01:56:12.000000 | 2018-01-18 01:56:12 |
+----------------------------+------------------------+
server B>select from_unixtime(paytime),from_unixtime(addtime) from test1;
+------------------------+------------------------+
| from_unixtime(paytime) | from_unixtime(addtime) |
+------------------------+------------------------+
| 2018-01-18 01:56:12 | 2018-01-18 01:56:12 |
+------------------------+------------------------+
如你所见,当我使用 from_unixtime 时,mysql 5.5 返回 '2018-01-18 01:56:12',当参数为字符串类型时,mysql 5.6 返回 '2018-01-18 01:56:12' .有谁知道原因吗?
最佳答案
有一个bug reported与此行为有关。
要在错误解决之前修复您的问题,一种解决方法是在 from_unixtime
中明确指定 datetime
格式
SELECT from_unixtime('1516240572', '%Y-%m-%d %H:%i:%s');
Output:- 2018-01-18 01:56:12
关于mysql - 为什么 MySQL FROM_UNIXTIME() 在不同的 mysql 服务器版本中返回不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48316612/