MySQL DateTime 格式化查询

MySQL 是一个功能强大的关系型数据库管理系统,它支持处理日期和时间数据。在 MySQL 中,日期和时间数据可以使用 DateTime 类型来存储和处理。DateTime 类型提供了丰富的函数和格式化选项,使得对日期和时间进行查询和操作变得非常方便。

本文将介绍如何在 MySQL 中进行 DateTime 格式化查询。我们将首先讨论 MySQL 中的 DateTime 类型,然后介绍如何使用格式化函数来查询和操作日期和时间。最后,我们将提供一些常见的 DateTime 格式化示例,并使用代码进行演示。

DateTime 类型

在 MySQL 中,DateTime 类型用于存储日期和时间数据。DateTime 类型的格式为 YYYY-MM-DD HH:MI:SS,其中 YYYY 表示四位数的年份,MM 表示两位数的月份,DD 表示两位数的日期,HH 表示小时(24 小时制),MI 表示分钟,SS 表示秒。

DateTime 类型的值可以包含日期和时间,也可以只包含日期或者只包含时间。当只包含日期时,时间部分默认为 00:00:00;当只包含时间时,日期部分默认为当前日期。

下表展示了一些 DateTime 类型的示例值:

类型
2022-01-01 10:30:00 日期和时间
2022-01-01 日期
10:30:00 时间

格式化查询

MySQL 提供了很多函数来格式化 DateTime 类型的值。通过使用这些函数,我们可以将 DateTime 类型的值格式化为不同的日期和时间格式。

下面是一些常用的格式化函数:

  • DATE_FORMAT():将 DateTime 格式化为指定的日期格式。
  • YEAR():提取 DateTime 的年份部分。
  • MONTH():提取 DateTime 的月份部分。
  • DAY():提取 DateTime 的日期部分。
  • HOUR():提取 DateTime 的小时部分。
  • MINUTE():提取 DateTime 的分钟部分。
  • SECOND():提取 DateTime 的秒部分。

下面是使用这些函数进行格式化查询的示例:

-- 将 DateTime 格式化为指定的日期格式
SELECT DATE_FORMAT('2022-01-01 10:30:00', '%Y-%m-%d') AS formatted_date;

-- 提取 DateTime 的年份部分
SELECT YEAR('2022-01-01 10:30:00') AS year;

-- 提取 DateTime 的月份部分
SELECT MONTH('2022-01-01 10:30:00') AS month;

-- 提取 DateTime 的日期部分
SELECT DAY('2022-01-01 10:30:00') AS day;

-- 提取 DateTime 的小时部分
SELECT HOUR('2022-01-01 10:30:00') AS hour;

-- 提取 DateTime 的分钟部分
SELECT MINUTE('2022-01-01 10:30:00') AS minute;

-- 提取 DateTime 的秒部分
SELECT SECOND('2022-01-01 10:30:00') AS second;

上述代码将返回以下结果:

formatted_date | year | month | day | hour | minute | second
-------------------------------------------------------------
2022-01-01     | 2022 | 1     | 1   | 10   | 30     | 0

常见的格式化示例

以下是一些常见的 DateTime 格式化示例:

格式化为日期部分

要将 DateTime 格式化为只包含日期部分的格式,可以使用 DATE_FORMAT() 函数,并指定 %Y-%m-%d 作为格式化字符串:

SELECT DATE_FORMAT('2022-01-01 10:30:00', '%Y-%m-%d') AS formatted_date;

上述代码将返回 2022-01-01

格式化为时间部分

要将 DateTime 格式化为只包含时间部分的格式,可以使用 DATE_FORMAT() 函数,并指定 %H:%i:%s 作为格式化字符串:

SELECT DATE_FORMAT('2022-01-01 10:30:00', '%H:%i:%s') AS formatted_time;

上述代码将返回 10:30:00