mysql 的 UNIX_TIMESTAMP
函数可以讲时间类型转化为时间戳,如果时间类型是精确到毫秒,那它转化的时间戳也变为浮点数,因为它的时间戳单位是秒,那如何通过 mysql 语句就能强制转化为只精确到秒的整数?
推荐方式
如果指定的时间数据为精确到毫秒,返回时间戳会如下:
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)
可以利用 CAST
函数进行强制转换,具体如下:
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)