MySQL: INT 转 DATETIME
在 MySQL 中,我们可以将一个整数类型的数值转换为日期/时间类型。这在日常开发中非常常见,比如使用 Unix 时间戳记录某个事件发生的时间,而我们又需要将该时间转换为 DATETIME 类型以进行查询和分析。
阅读更多:MySQL 教程
UNIX 时间戳
首先,让我们来了解一下 Unix 时间戳。Unix 时间戳是指从 1970 年 1 月 1 日 UTC(协调世界时)零时起到现在的总秒数。该数值可以用于表示任何日期和时间,即使是很远的未来或过去。例如,现在的 Unix 时间戳为:
SELECT UNIX_TIMESTAMP(NOW());
-- 输出结果:1635012312
INT 转 DATETIME
接下来,我们可以使用 MySQL 内置函数 FROM_UNIXTIME()
将一个 Unix 时间戳转换为 DATETIME 类型。该函数接受一个整数类型的 Unix 时间戳作为参数,如下所示:
SELECT FROM_UNIXTIME(1635012312);
-- 输出结果:2021-10-23 12:45:12
另外,如果你的 Unix 时间戳是以毫秒为单位的,那么你需要将该数值除以 1000,再将其转换为整数类型,才能正确地将其转换为 DATETIME 类型:
SELECT FROM_UNIXTIME(1635012312000 / 1000);
-- 输出结果:2021-10-23 12:45:12
总结
本文介绍了如何在 MySQL 中将一个整数类型的 Unix 时间戳转换为 DATETIME 类型。使用 MySQL 内置函数 FROM_UNIXTIME()
可以很方便地完成这个转换。如果你需要做这样的转换,希望这篇文章能对你有所帮助。