MariaDB UNIX_TIMESTAMP() 函数的基础用法与实例

MariaDB UNIX_TIMESTAMP() 函数用来获取指定日期的 Unix 时间戳值,也就是从 1970 年 1 月 1 日 00:00:00 UTC 到指定日期时间的秒数。

发布于

MariaDB UNIX_TIMESTAMP() 函数用来获取指定日期的 Unix 时间戳值,也就是从 1970 年 1 月 1 日 00:00:00 UTC 到指定日期时间的秒数。如果不指定日期,则返回当前的 Unix 时间戳。该函数常用于日期和时间的计算、存储和比较。

语法

MairaDB UNIX_TIMESTAMP() 函数的语法如下:

UNIX_TIMESTAMP([date])
  • date:可选参数,是一个 DATETIMETIMESTAMP 类型的日期时间值。如果未提供该参数,则返回当前时间的 Unix 时间戳。
  • 返回值:返回一个无符号的 64 位整数,表示自 1970 年 1 月 1 日 00:00:00 UTC 到指定日期时间所经过的秒数。如果 date 为无效值或不合法的日期字符串,则返回 NULL

实例

获取当前时间的 Unix 时间戳

这个实例演示如何获取当前时间的 Unix 时间戳。

SELECT UNIX_TIMESTAMP();

以下是该语句的输出:

+------------------+
| UNIX_TIMESTAMP() |
+------------------+
|       1711346630 |
+------------------+

输出值表示从 1970 年 1 月 1 日 00:00:00 UTC 到当前时间所经过的秒数。

获取指定日期时间的 Unix 时间戳

这个实例演示如何获取指定日期时间的 Unix 时间戳。

SELECT UNIX_TIMESTAMP('2023-03-15 10:30:00');

以下是该语句的输出:

+---------------------------------------+
| UNIX_TIMESTAMP('2023-03-15 10:30:00') |
+---------------------------------------+
|                            1678847400 |
+---------------------------------------+

输出值 1678847400 表示从 1970 年 1 月 1 日 00:00:00 UTC 到 2023 年 3 月 15 日 10:30:00 所经过的秒数。

将 Unix 时间戳转换为日期时间

这个实例演示如何将 Unix 时间戳转换为日期时间。

SELECT FROM_UNIXTIME(1678847400);

以下是该语句的输出:

+---------------------------+
| FROM_UNIXTIME(1678847400) |
+---------------------------+
| 2023-03-15 10:30:00       |
+---------------------------+

FROM_UNIXTIME() 函数将 Unix 时间戳 1678847400 转换为对应的日期时间值。

从表中获取日期时间的 Unix 时间戳

这个实例演示如何从表中获取日期时间的 Unix 时间戳。

DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table (dt DATETIME);
INSERT INTO my_table VALUES ('2023-03-15 10:30:00'), ('2023-03-16 12:00:00');
SELECT dt, UNIX_TIMESTAMP(dt) FROM my_table;

以下是该语句的输出:

+---------------------+--------------------+
| dt                  | UNIX_TIMESTAMP(dt) |
+---------------------+--------------------+
| 2023-03-15 10:30:00 |         1678847400 |
| 2023-03-16 12:00:00 |         1678939200 |
+---------------------+--------------------+

在这个例子中,我们首先创建了一个包含 DATETIME 列的表,并插入了两行数据。然后,我们使用 UNIX_TIMESTAMP(dt) 从表中获取每个日期时间的 Unix 时间戳值。

计算两个日期时间之间的秒数

这个实例演示如何使用 UNIX_TIMESTAMP() 函数计算两个日期时间之间的秒数。

SELECT UNIX_TIMESTAMP('2023-03-16 12:00:00') - UNIX_TIMESTAMP('2023-03-15 10:30:00');

以下是该语句的输出:

+-------------------------------------------------------------------------------+
| UNIX_TIMESTAMP('2023-03-16 12:00:00') - UNIX_TIMESTAMP('2023-03-15 10:30:00') |
+-------------------------------------------------------------------------------+
|                                                                         91800 |
+-------------------------------------------------------------------------------+

这个结果表示 2023 年 3 月 16 日 12:00:00 和 2023 年 3 月 15 日 10:30:00 之间相差 91800。

相关函数

以下是几个与 MairaDB UNIX_TIMESTAMP() 相关的几个函数:

  • MariaDB FROM_UNIXTIME() 函数用来将 Unix 时间戳转换为日期时间。
  • MariaDB TIMESTAMPDIFF() 函数用来计算两个日期时间之间的时间差。
  • MariaDB DATE_FORMAT() 函数用来格式化日期和时间。
  • MariaDB CURDATE() 函数用来获取当前日期。
  • MariaDB CURTIME() 函数用来获取当前时间。

结论

MariaDB UNIX_TIMESTAMP() 函数是一个非常实用的函数,它可以方便地获取指定日期时间的 Unix 时间戳值,或者将 Unix 时间戳转换为日期时间。本文介绍了 UNIX_TIMESTAMP() 函数的语法、用法和一些实例,以及一些相关的函数。通过本文,您应该对如何使用 UNIX_TIMESTAMP() 函数有了更好的理解。