MySQL如何将时间戳转成日期
MySQL中经常需要将时间戳(timestamp)转换成日期格式。在数据库中,时间戳是以秒为单位计算的自1970年1月1日起的秒数。在应用程序中,日期格式更常用于展现。本篇文章将介绍MySQL中将时间戳转换成日期格式的方法。
1. 使用FROM_UNIXTIME
MySQL提供了一个很好的内置函数FROM_UNIXTIME,它可以将Unix时间戳转换成日期格式。该函数的语法如下:
SELECT FROM_UNIXTIME(timestamp, format)
其中,timestamp为Unix时间戳,format为日期格式,默认为'%Y-%m-%d %H:%i:%s',分别代表年、月、日、时、分、秒。例如:
SELECT FROM_UNIXTIME(1613548533, '%Y-%m-%d %H:%i:%s')
返回值为2021-02-17 22:08:53。
使用示例
使用FROM_UNIXTIME函数转换时间戳
假设有以下一个表:
CREATE TABLE record (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
timestamp BIGINT(20)
);
表中有三列,分别为id、name和timestamp,timestamp存储了Unix时间戳。我们可以通过以下方式将时间戳转换成日期格式:
SELECT id, name, FROM_UNIXTIME(timestamp, '%Y-%m-%d %H:%i:%s') AS date
FROM record;
该语句将返回如下结果:
+----+--------+---------------------+
| id | name | date |
+----+--------+---------------------+
| 1 | Record1| 2021-02-17 22:08:53 |
| 2 | Record2| 2021-02-17 22:12:33 |
| 3 | Record3| 2021-02-17 23:02:11 |
+----+--------+---------------------+
2. 使用DATE_FORMAT
DATE_FORMAT是MySQL中另一个用于日期格式化的内置函数。它可以将DATE或DATETIME类型的日期格式化成字符串。也可以使用它将时间戳转换成字符串。该函数的基本语法如下:
DATE_FORMAT(date[,format])
其中,date为日期或时间戳,format为日期格式。对于时间戳,我们需要先将它转换成DATE或DATETIME类型。而DATE或DATETIME类型的日期格式我们可以通过FROM_UNIXTIME函数转换得到。例如:
SELECT DATE_FORMAT(FROM_UNIXTIME(1613548533), '%Y-%m-%d %H:%i:%s');
返回值同上,为2021-02-17 22:08:53。
使用示例
使用DATE_FORMAT函数转换时间戳
下面是使用DATE_FORMAT函数将时间戳转换成日期格式的示例:
SELECT id, name, DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y-%m-%d %H:%i:%s') AS date
FROM record;
返回结果同上。
小结
本篇文章介绍了MySQL中将Unix时间戳转换成日期格式的两种方法:使用FROM_UNIXTIME和DATE_FORMAT函数。无论哪种方法,都需要先将时间戳转换成日期格式,然后再按照所需的日期格式进行格式化。