MySQL 时间与时间戳的相互转换
1. 引言
在许多应用中,时间是一个重要的因素。在数据库中,我们经常需要存储和处理时间数据。MySQL提供了一些函数来进行时间和日期的转换和操作。本文将详细介绍MySQL中时间和时间戳之间的相互转换。
2. 时间数据类型
在MySQL中,有两种主要的时间数据类型:DATE
和DATETIME
。DATE
用于存储日期,精确到天;DATETIME
用于存储日期和时间,精确到秒。
3. 时间转换为时间戳
时间戳是一个以秒为单位的整数值,表示从1970年1月1日00:00:00 UTC到指定时间的秒数。在MySQL中,可以使用UNIX_TIMESTAMP()
函数将时间转换为时间戳。
以下是一个示例,将当前时间转换为时间戳:
SELECT UNIX_TIMESTAMP(NOW());
运行结果如下:
+-------------------------+
| UNIX_TIMESTAMP(NOW()) |
+-------------------------+
| 1659329927 |
+-------------------------+
4. 时间戳转换为时间
MySQL提供了FROM_UNIXTIME()
函数,用于将时间戳转换为可读的时间格式。该函数接受一个整数作为参数,表示时间戳值。
以下是一个示例,将时间戳转换为时间:
SELECT FROM_UNIXTIME(1659329927);
运行结果如下:
+-----------------------------+
| FROM_UNIXTIME(1659329927) |
+-----------------------------+
| 2022-05-02 10:18:47 |
+-----------------------------+
5. 获取当前时间戳
要获取当前时间的时间戳,可以使用UNIX_TIMESTAMP()
函数,不传递任何参数即可。
以下是一个示例,获取当前时间戳:
SELECT UNIX_TIMESTAMP();
运行结果如下:
+-------------------+
| UNIX_TIMESTAMP() |
+-------------------+
| 1659329927 |
+-------------------+
6. 时间格式化函数
在MySQL中,还有其他一些函数可以将时间转换为不同的格式。下面列举了一些常用的时间格式化函数:
DATE_FORMAT(date, format)
:将日期格式化为指定的格式。TIME_FORMAT(time, format)
:将时间格式化为指定的格式。DATE_ADD(date, INTERVAL expr unit)
:在给定的日期上增加一个时间间隔。DATE_SUB(date, INTERVAL expr unit)
:在给定的日期上减去一个时间间隔。
以下是一些示例,展示了如何使用这些函数:
6.1 DATE_FORMAT()
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
运行结果如下:
+-------------------------+
| DATE_FORMAT(NOW(), '%Y-%m-%d') |
+-------------------------+
| 2022-05-02 |
+-------------------------+
6.2 TIME_FORMAT()
SELECT TIME_FORMAT(NOW(), '%H:%i:%s');
运行结果如下:
+-------------------------+
| TIME_FORMAT(NOW(), '%H:%i:%s') |
+-------------------------+
| 10:18:47 |
+-------------------------+
6.3 DATE_ADD()
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
运行结果如下:
+--------------------------------+
| DATE_ADD(NOW(), INTERVAL 1 DAY) |
+--------------------------------+
| 2022-05-03 |
+--------------------------------+
6.4 DATE_SUB()
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);
运行结果如下:
+----------------------------------+
| DATE_SUB(NOW(), INTERVAL 1 MONTH)|
+----------------------------------+
| 2022-04-02 |
+----------------------------------+
7. 总结
本文介绍了MySQL中时间和时间戳之间的相互转换。我们了解了如何将时间转换为时间戳,以及如何将时间戳转换为时间。此外,还介绍了其他一些时间格式化函数的使用方法。