MySQL 基础教程

MySQL 高级教程

MySQL SQL 语句

MySQL 笔记

MySQL UNIX_TIMESTAMP 时间戳函数用法全解

MySQL 内置函数及自定义函数详解 MySQL 内置函数及自定义函数详解


MySQL UNIX_TIMESTAMP() 函数返回精确到秒的当前时间的时间戳,若指定时间类型的参数,它会得到对应的时间戳,也是精确到秒,如果时间类型是包含毫秒形式的,返回的也是精确到小数点,表示对应的毫秒。

语法

UNIX_TIMESTAMP([date])

如上所述,无参时,返回精确到秒的时间戳,指定时间类型参数,返回相应时间戳。

参数可以是 DATEDATETIMETIMESTAMP 或符合格式的字符串,也可以是数字,数字格式如 YYMMDDYYMMDDhhmmssYYYYMMDDYYYYMMDDhhmmss 等等。

示例

获取当前的时间戳:

mysql> SELECT UNIX_TIMESTAMP();
+------------------+
| UNIX_TIMESTAMP() |
+------------------+
|       1619456614 |
+------------------+
1 row in set (0.16 sec)

获取指定时间的时间戳:

mysql> SELECT UNIX_TIMESTAMP('2021-05-01 21:18:36');
+---------------------------------------+
| UNIX_TIMESTAMP('2021-05-01 21:18:36') |
+---------------------------------------+
|                            1619875116 |
+---------------------------------------+
1 row in set (0.12 sec)

如果指定的时间数据为精确到毫秒,返回时间戳会如下:

mysql> SELECT UNIX_TIMESTAMP('2021-05-01 21:18:36.123');
+-------------------------------------------+
| UNIX_TIMESTAMP('2021-05-01 21:18:36.123') |
+-------------------------------------------+
|                            1619875116.123 |
+-------------------------------------------+
1 row in set (0.00 sec)

如果需要返回的时间戳必须要是精确到秒的整数,假设时间类型字段为 create_date,可以如下:

mysql> SELECT CAST(UNIX_TIMESTAMP(create_date) AS int) AS a FROM tb_user LIMIT 1;
+--------------+
|            a |
+--------------+
|   1619875116 |
+--------------+
1 row in set (0.00 sec)

笔记