MySQL 获取时间

MySQL 获取时间

MySQL 获取时间

在进行数据库开发和管理的过程中,经常需要对数据库中的时间进行操作和管理。MySQL 提供了多种方式来获取和操作时间,本文将详细介绍这些方法。

1. DATE 类型

MySQL 中,有一种专门用于存储日期的数据类型,即 DATE 类型。DATE 类型用于表示年、月、日,格式为 YYYY-MM-DD。我们可以使用 DATE 类型来存储生日、发布日期等日期信息。

1.1 创建表并插入数据

首先,我们创建一个名为 users 的表,包含 idnamebirthday 三个字段。

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  birthday DATE
);

INSERT INTO users (id, name, birthday)
VALUES
  (1, 'Alice', '1990-01-01'),
  (2, 'Bob', '1995-06-15'),
  (3, 'Charlie', '1988-12-31');

1.2 查询日期

我们可以使用 SELECT 语句来查询 DATE 类型的数据。例如,查询生日在 1990 年之后的用户:

SELECT *
FROM users
WHERE birthday > '1990-01-01';

运行以上查询语句后,可以得到以下结果:

| id |   name   |   birthday   |
|----|----------|--------------|
|  2 |   Bob    | 1995-06-15   |
|  3 | Charlie  | 1988-12-31   |

1.3 计算日期差

MySQL 提供了 DATEDIFF 函数来计算两个日期的差值。该函数的使用方法如下所示:

SELECT DATEDIFF('2022-09-01', '2022-08-01') AS diff;

运行上述语句将得到以下结果:

+------+
| diff |
+------+
|   31 |
+------+

以上示例计算了两个日期相差的天数。

2. 时间戳

除了使用 DATE 类型来存储日期,MySQL 还支持使用时间戳(TIMESTAMP)来存储和操作日期和时间。时间戳表示从 1970 年 1 月 1 日至今的秒数。

2.1 创建表并插入数据

假设我们有一个名为 articles 的表,用于存储文章的信息,包含 idtitlecreated_at 字段。created_at 字段用于存储文章的创建时间。

CREATE TABLE articles (
  id INT PRIMARY KEY,
  title VARCHAR(100),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO articles (id, title)
VALUES
  (1, 'MySQL 入门教程'),
  (2, 'SQL 进阶技巧'),
  (3, '数据库设计原则');

在上述创建表的语句中,我们为 created_at 字段设置了默认值为 CURRENT_TIMESTAMP,这意味着当插入数据时,如果没有指定 created_at 的值,将自动使用当前时间。

2.2 查询最近创建的文章

为了查询最近创建的文章,我们可以使用 SELECT 语句并按照 created_at 字段进行降序排列。

SELECT *
FROM articles
ORDER BY created_at DESC
LIMIT 5;

以上查询将返回最近创建的 5 篇文章。

2.3 修改时间戳

有时候,我们可能需要修改时间戳字段的值。我们可以使用 UPDATE 语句来更新时间戳字段的值。

UPDATE articles
SET created_at = '2022-09-01 10:00:00'
WHERE id = 1;

运行以上语句后,指定文章的创建时间将被更新为 2022-09-01 10:00:00

3. NOW() 函数

在 MySQL 中,使用 NOW() 函数可以获取当前日期和时间。NOW() 函数返回一个包含当前日期和时间的 DATETIME 值。

3.1 查询当前日期和时间

我们可以使用 SELECT 语句和 NOW() 函数来查询当前的日期和时间。

SELECT NOW() AS current_datetime;

运行上述语句后,我们可以得到当前日期和时间的值。

+---------------------+
| current_datetime    |
+---------------------+
| 2022-09-15 14:30:00 |
+---------------------+

3.2 插入当前日期和时间

我们可以将 NOW() 函数的返回值插入到表中的字段中。例如,为 articles 表的 created_at 字段插入当前日期和时间:

INSERT INTO articles (id, title, created_at)
VALUES
  (4, 'MySQL 高级调优', NOW());

运行以上语句后,created_at 字段将包含当前的日期和时间。

4. 时间函数

MySQL 提供了许多内置函数来对日期和时间进行操作和计算。

4.1 YEAR()、MONTH()、DAY()

YEAR()MONTH()DAY() 函数分别用于提取日期中的年、月、日。

例如,提取日期字段 birthday 中的年份:

SELECT YEAR(birthday) AS birth_year
FROM users;

4.2 HOUR()、MINUTE()、SECOND()

HOUR()MINUTE()SECOND() 函数用于提取时间中的时、分、秒。

例如,提取时间字段 created_at 中的小时和分钟:

SELECT HOUR(created_at) AS hour, MINUTE(created_at) AS minute
FROM articles;

4.3 DATE_FORMAT()

DATE_FORMAT() 函数可以将日期和时间格式化为指定的字符串。常用的格式化符号有:

  • %Y:四位数的年份
  • %m:月份(01-12)
  • %d:月份中的天数(01-31)
  • %H:小时(00-23)
  • %i:分钟(00-59)
  • %s:秒(00-59)

例如,将日期字段格式化为 YYYY 年 MM 月 DD 日 的格式:

SELECT DATE_FORMAT(birthday, '%Y 年 %m 月 %d 日') AS formatted_birthday
FROM users;

以上查询将返回生日字段的格式化结果。

5. 总结

本文介绍了 MySQL 中获取和操作时间的几种方法。通过使用 DATE 类型、时间戳、NOW() 函数以及其他内置函数,我们可以轻松地进行日期和时间的查询、计算和格式化。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程