MySQL 时间戳转日期
介绍
在 MySQL 中,时间戳是一种存储日期和时间的数据类型,它通常表示从 1970 年 1 月 1 日至今所经过的秒数。然而,对于人类来说,直接读取时间戳并不方便,因此我们需要将时间戳转换为易于理解的日期和时间格式。
本文将详细解释如何使用 MySQL 函数将时间戳转换为日期。我们将介绍两种常用的函数,分别是 FROM_UNIXTIME 和 DATE_FORMAT。
1. FROM_UNIXTIME 函数
FROM_UNIXTIME 函数是 MySQL 中的内置函数,用于将时间戳转换为日期时间字符串。它的语法如下:
FROM_UNIXTIME(unix_timestamp, [format])
其中,unix_timestamp
是要转换的时间戳,format
是可选参数,表示输出的日期时间格式。若不提供 format
参数,则默认输出为 YYYY-MM-DD HH:MM:SS
格式。
示例
假设我们有一个表 orders
,其中有一个名为 order_time
的字段,它存储的是订单的时间戳。现在,我们想将这个时间戳转换为易读的日期时间格式。
首先,我们可以使用以下 SQL 语句查询并转换时间戳:
SELECT order_time, FROM_UNIXTIME(order_time) AS order_date
FROM orders;
执行该语句后,我们将获得一个包含 order_time
和 order_date
(转换后的日期时间字符串)两列的结果集。
结果输出
order_time | order_date |
---|---|
1627529076 | 2021-07-29 10:04:36 |
1627640442 | 2021-07-30 15:14:02 |
1627726846 | 2021-07-31 15:40:46 |
… | … |
2. DATE_FORMAT 函数
与 FROM_UNIXTIME 函数不同,DATE_FORMAT 函数可以根据我们的需要,将时间戳转换为自定义的日期时间格式。它的语法如下:
DATE_FORMAT(date, format)
其中,date
可以是日期时间类型的列或表达式,也可以是一个时间戳;format
是用于指定输出格式的字符串。
示例
我们还是以 orders
表为例,现在我们想将时间戳按照自定义的格式转换为日期时间。
以下是一个 SQL 查询示例:
SELECT order_time, DATE_FORMAT(FROM_UNIXTIME(order_time), '%Y年%m月%d日 %H:%i') AS formatted_date
FROM orders;
执行该语句后,我们将得到一个包含 order_time
和 formatted_date
(按照自定义格式转换后的日期时间字符串)两列的结果集。
结果输出
order_time | formatted_date |
---|---|
1627529076 | 2021年07月29日 10:04 |
1627640442 | 2021年07月30日 15:14 |
1627726846 | 2021年07月31日 15:40 |
… | … |
总结
本文介绍了在 MySQL 中将时间戳转换为易于理解的日期时间格式的两种常用函数:FROM_UNIXTIME 和 DATE_FORMAT。两者都能够实现时间戳到日期的转换,但 DATE_FORMAT 还可以根据需要进行自定义格式的转换。
使用这两个函数我们可以轻松地将时间戳转换为我们需要的日期时间格式,使之更易于阅读和理解。在开发中,根据实际需求选择适合的函数可以提高我们的工作效率。