将MySQL Unix时间戳转换为人类可读形式

将MySQL Unix时间戳转换为人类可读形式,mysql,Mysql,感谢这个话题已经被讨论了很多次,我已经尝试了所有我能找到的组合,但都没有成功 以下时间戳是使用rpt_default_day.time_stamp时返回的时间戳示例: 1474502400000 如果我将此时间戳放入以下网站,它将返回正确的日期和时间: 以下是我一直使用的一些查询示例: DATE_FORMAT(FROM_UNIXTIME('rpt_default_day.time_stamp'), '%e %b %Y') AS 'Date', FROM_UNIXTIME('rpt_defaul

感谢这个话题已经被讨论了很多次,我已经尝试了所有我能找到的组合,但都没有成功

以下时间戳是使用rpt_default_day.time_stamp时返回的时间戳示例:

1474502400000

如果我将此时间戳放入以下网站,它将返回正确的日期和时间:

以下是我一直使用的一些查询示例:

DATE_FORMAT(FROM_UNIXTIME('rpt_default_day.time_stamp'), '%e %b %Y') AS 'Date',
FROM_UNIXTIME('rpt_default_day.time_stamp') AS 'Date', 
FROM_UNIXTIME(UNIX_TIMESTAMP('rpt_default_day.time_stamp')) AS 'Date',
问题是,无论我做什么,我总是会在大纪元时得到回报:

“1970-01-01:00:00.000000”


提前感谢您的帮助。

从字符串中删除三个零就可以了。

从字符串中删除三个零就可以了。

应该将正确的格式值作为参数传递给“from_UNIXTIME”函数:

mysql> SELECT UNIX_TIMESTAMP(NOW()) as ts, 
FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()), '%Y %D %M %h:%i:%s %x') as f_tm;
+------------+-----------------------------------+
| ts         | f_tm                              |
+------------+-----------------------------------+
| 1474755927 | 2016 25th September 01:25:27 2016 |
+------------+-----------------------------------+
1 row in set (0.06 sec)

可能的格式值在

中指定。正确的格式值应作为参数传递给“FROM_UNIXTIME”函数:

mysql> SELECT UNIX_TIMESTAMP(NOW()) as ts, 
FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()), '%Y %D %M %h:%i:%s %x') as f_tm;
+------------+-----------------------------------+
| ts         | f_tm                              |
+------------+-----------------------------------+
| 1474755927 | 2016 25th September 01:25:27 2016 |
+------------+-----------------------------------+
1 row in set (0.06 sec)

可能的格式值在

中指定。您不认为rpt\u default\u day.time\u stamp的定义可能与问题有点关联吗?你不认为
rpt\u default\u day.time\u stamp
的定义可能与这个问题有点关联吗?只是说。非常感谢,非常感谢,直截了当。下面是我从_unixtime(cast(rpt_default_day.time_stamp AS char(10))开始做这件事的方式,也许不是最好的方式,但它确实有效。不,@mflammia。请不可以。您的时间戳以毫秒为单位,而
FROM_UNIXTIME()
要求时间以秒为单位。做正确的事情,将值除以1000。不要用石膏将其截断<代码>来自UNIXTIME(rpt\u default\u day.time\u stamp/1000)已理解。谢谢,非常感谢,非常感谢,直截了当。下面是我从_unixtime(cast(rpt_default_day.time_stamp AS char(10))开始做这件事的方式,也许不是最好的方式,但它确实有效。不,@mflammia。请不可以。您的时间戳以毫秒为单位,而
FROM_UNIXTIME()
要求时间以秒为单位。做正确的事情,将值除以1000。不要用石膏将其截断<代码>来自UNIXTIME(rpt\u default\u day.time\u stamp/1000)已理解。非常感谢。