MariaDB FROM_UNIXTIME() 函数使用指南

在 MariaDB 中,FROM_UNIXTIME() 是一个内置函数,它将给定的 unix 时间戳转换为日期时间值。

UNIX 时间戳值是距离 UTC 时间 1970-01-01 00:00:00 的秒数。

FROM_UNIXTIME() 的反函数是 UNIX_TIMESTAMP()

MariaDB FROM_UNIXTIME() 语法

这是 MariaDB FROM_UNIXTIME() 函数的语法:

FROM_UNIXTIME(unix_timestamp[, format])

参数

unix_timestamp
必需的。 UNIX 时间戳是距离 UTC 时间 1970-01-01 00:00:00 的秒数。
format
可选的。用来格式化日期/时间值。要查看关于格式化占日期时间的更多信息,请参考 DATE_FORMAT() 函数。

如果您不提供参数或提供了错误数量的参数,MariaDB 将报告一个错误: ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'

返回值

MariaDB FROM_UNIXTIME() 函数将 unix_timestamp 转为日期时间或者格式化为一个表示日期/时间的字符串。

如果您提供了 format 参数, FROM_UNIXTIME() 函数将按照 format 格式返回个字符串。

如果不提供 format 参数,FROM_UNIXTIME() 函数将返回一个日期时间类型的值。如果函数处于字符串上下文,使用 YYYY-MM-DD HH:MM:SS 格式, 否则使用 YYYYMMDDHHMMSS.uuuuuu 格式。

如果参数为 NULLFROM_UNIXTIME() 函数将返回 NULL

MariaDB FROM_UNIXTIME() 示例

基本示例

要将 UNIX 时间戳 1649839394 转为 UTC 时间,请使用以下语句:

SELECT FROM_UNIXTIME(1679839394);

输出:

+---------------------------+
| FROM_UNIXTIME(1679839394) |
+---------------------------+
| 2023-03-26 22:03:14       |
+---------------------------+

小数秒

FROM_UNIXTIME() 允许您将带有小数秒的 UNIX 时间戳转为日期时间值,如下:

SELECT FROM_UNIXTIME(1679839394.121311);

输出:

+----------------------------------+
| FROM_UNIXTIME(1679839394.121311) |
+----------------------------------+
| 2023-03-26 22:03:14.121311       |
+----------------------------------+

数字上下文

如果不为 FROM_UNIXTIME() 指定 format 参数,并且在数字上下文中使用时,它将返回 YYYYMMDDHHMMSS[.uuuuuu] 格式的数字:

SELECT FROM_UNIXTIME(1679839394.121311) + 0;

输出:

+--------------------------------------+
| FROM_UNIXTIME(1679839394.121311) + 0 |
+--------------------------------------+
|                20230326220314.121311 |
+--------------------------------------+

设置结果格式

FROM_UNIXTIME() 允许您指定输出日期时间的格式,如下:

SELECT FROM_UNIXTIME(1679839394, '%Y%m%d %H%i%S');

输出:

+--------------------------------------------+
| FROM_UNIXTIME(1679839394, '%Y%m%d %H%i%S') |
+--------------------------------------------+
| 20230326 220314                            |
+--------------------------------------------+

当前 Unix 时间戳

要获取当前时间的时间戳,请使用 UNIX_TIMESTAMP() 函数:

SELECT UNIX_TIMESTAMP();

输出:

+------------------+
| UNIX_TIMESTAMP() |
+------------------+
|       1673316979 |
+------------------+

结论

在 MariaDB 中,FROM_UNIXTIME() 是一个内置函数,它将给定的 unix 时间戳转换为日期时间值。