首页 >数据库 >mysql教程 >如何在 MySQL 中将毫秒精度的纪元数转换为人类可读的日期?

如何在 MySQL 中将毫秒精度的纪元数转换为人类可读的日期?

DDD
DDD原创
2024-10-30 03:01:281015浏览

How to Convert Epoch Numbers with Millisecond Precision to Human-Readable Dates in MySQL?

将纪元数转换为 MySQL 中人类可读的日期

问题:

给定一个存储为 VARCHAR 数据类型的纪元号(例如 1389422614485),如何将其有效地转换为人类可读的日期和时间?

解决方案:

在 MySQL 中,可以使用以下步骤将毫秒精度的 Epoch 数字转换为人类可读的格式:

  1. 使用 from_unixtime() 函数将 Epoch 数字转换为 UNIX 时间戳。
  2. 将纪元数除以 1000 以计算毫秒数。在 8.0 之后的 MySQL 版本中可能不需要此步骤。
  3. 对于旧版本的 MySQL,请使用 Floor() 函数将结果舍入到最接近的秒。

将综合起来,可以使用以下 SQL 查询:

<code class="sql">SELECT from_unixtime(floor(epoch_number / 1000));</code>

示例:

考虑 Epoch 编号 1389422614485:

<code class="sql">mysql> SELECT from_unixtime(floor(1389422614485 / 1000));
+------------------------------------------+
| from_unixtime(floor(1389422614485 / 1000)) |
+------------------------------------------+
| 2014-01-11 12:13:34                      |
+------------------------------------------+</code>

在 MySQL 8.0 及更高版本中,floor() 函数不是必需的:

<code class="sql">mysql> SELECT from_unixtime(1389422614485 / 1000);
+------------------------------------------+
| from_unixtime(1594838230234 / 1000)        |
+------------------------------------------+
| 2020-07-15 18:37:10.2340                 |
+------------------------------------------+</code>

以上是如何在 MySQL 中将毫秒精度的纪元数转换为人类可读的日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn