MySQL 时间与时间戳的相互转换

MySQL 时间与时间戳的相互转换

MySQL 时间与时间戳的相互转换

1. 引言

在许多应用中,时间是一个重要的因素。在数据库中,我们经常需要存储和处理时间数据。MySQL提供了一些函数来进行时间和日期的转换和操作。本文将详细介绍MySQL中时间和时间戳之间的相互转换。

2. 时间数据类型

在MySQL中,有两种主要的时间数据类型:DATEDATETIMEDATE用于存储日期,精确到天;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中时间和时间戳之间的相互转换。我们了解了如何将时间转换为时间戳,以及如何将时间戳转换为时间。此外,还介绍了其他一些时间格式化函数的使用方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程