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 时间戳转换为日期时间值。