mysql - 为什么 MySQL FROM_UNIXTIME() 在不同的 mysql 服务器版本中返回不同的结果?

标签 mysql

我的产品有如下表格,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

Reference Link

关于mysql - 为什么 MySQL FROM_UNIXTIME() 在不同的 mysql 服务器版本中返回不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48316612/

相关文章:

php - 将多页 php 表单转换为一页表单

mysql - 为什么 SELECT ... WHERE last_name = 0 返回所有行?

mysql - 从 Ubuntu 10.04 迁移到 12.04 后期望脚本停止

php - 无法连接到本地mysql服务器

mysql - 使用 unixtimestamp 查找上个月的所有 mysql 行

javascript - 将 $_GET [id] 传递给刷新

mysql - 如何查询MySQL数据库原理图

mysql - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解使用近线 1 的正确语法

mysql - 如何按创建时间顺序选择性地显示两个表中的记录

php - 如何使用 mysql 和 php 将大文本数据存储在带有 id 链接的两个表中