mysql把数字时间戳变成时间
在实际的数据库操作中,经常会遇到把存储的数字时间戳转换成正常时间格式的需求。在 MySQL 中,要实现把数字时间戳转换成时间的方法主要有两种,一种是使用 FROM_UNIXTIME()
函数,另一种是使用 UNIX_TIMESTAMP()
函数。接下来,我将详细解释这两种方法的使用。
使用FROM_UNIXTIME()函数
FROM_UNIXTIME()
函数是 MySQL 中内置的一个函数,可以把 Unix 时间戳转换成指定的日期时间格式。下面我们来看一个示例:假设我们有一个表 timestamp_test
,里面有两个字段 id
和 timestamp_val
,timestamp_val
存储的是数字时间戳。
首先,我们创建这个表并插入一些数据:
CREATE TABLE timestamp_test (
id INT AUTO_INCREMENT PRIMARY KEY,
timestamp_val BIGINT
);
INSERT INTO timestamp_test (timestamp_val) VALUES
(1609459200),
(1612137600),
(1614556800);
接着,我们使用 FROM_UNIXTIME()
函数将 timestamp_val
转换成时间格式:
SELECT id, FROM_UNIXTIME(timestamp_val) AS time FROM timestamp_test;
上面的语句会把 timestamp_val
的时间戳转换成正常的时间格式,并显示出来。运行结果类似下面这样:
+----+---------------------+
| id | time |
+----+---------------------+
| 1 | 2021-01-01 00:00:00 |
| 2 | 2021-02-01 00:00:00 |
| 3 | 2021-03-01 00:00:00 |
+----+---------------------+
使用UNIX_TIMESTAMP()函数
另一种方法是使用 UNIX_TIMESTAMP()
函数,该函数可以将日期时间格式转换成 Unix 时间戳。同样以表 timestamp_test
中的数据为例,我们来看一个示例:
SELECT id, UNIX_TIMESTAMP(FROM_UNIXTIME(timestamp_val)) AS timestamp FROM timestamp_test;
上面的语句会把 timestamp_val
的时间格式转换成 Unix 时间戳,并显示出来。运行结果类似下面这样:
+----+------------+
| id | timestamp |
+----+------------+
| 1 | 1609459200 |
| 2 | 1612137600 |
| 3 | 1614556800 |
+----+------------+
通过以上两种方法,我们可以轻松地实现在 MySQL 中把数字时间戳转换成时间格式,方便我们在数据库查询和展示时间数据。在实际项目中,根据需求选择合适的方法来进行操作。