MySQL UNIX_TIMESTAMP()
函数返回精确到秒的当前时间的时间戳,若指定时间类型的参数,它会得到对应的时间戳,也是精确到秒,如果时间类型是包含毫秒形式的,返回的也是精确到小数点,表示对应的毫秒。
语法
UNIX_TIMESTAMP([date])
如上所述,无参时,返回精确到秒的时间戳,指定时间类型参数,返回相应时间戳。
参数可以是 DATE
、DATETIME
、TIMESTAMP
或符合格式的字符串,也可以是数字,数字格式如 YYMMDD
、YYMMDDhhmmss
、YYYYMMDD
、YYYYMMDDhhmmss
等等。
示例
获取当前的时间戳:
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)