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 格式。
如果参数为 NULL,FROM_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 时间戳转换为日期时间值。