MySQL 中单独获取已知日期的年月日

发布于:2025-02-10 ⋅ 阅读:(59) ⋅ 点赞:(0)

在MySQL中,处理日期和时间是一项常见任务。通常,我们需要从已知的日期中提取年、月、日等部分信息。MySQL 提供了一些内置函数,可以方便地进行这些操作。本文将详细介绍如何在MySQL中单独获取已知日期的年、月、日部分。

一、提取年份(Year)

要从日期中提取年份,可以使用 YEAR() 函数。这个函数接受一个日期参数,并返回该日期的年份部分。

示例

假设我们有一个名为 events 的表,包含一个名为 event_date 的日期列。我们可以通过以下查询提取 event_date 中的年份:

SELECT event_date, YEAR(event_date) AS year
FROM events;
​

输出结果

event_date year
2023-07-01 2023
2024-01-15 2024

二、提取月份(Month)

要从日期中提取月份,可以使用 MONTH() 函数。这个函数接受一个日期参数,并返回该日期的月份部分(1到12)。

示例

同样地,从 event_date 中提取月份:

SELECT event_date, MONTH(event_date) AS month
FROM events;
​

输出结果

event_date month
2023-07-01 7
2024-01-15 1

三、提取日期(Day)

要从日期中提取日期部分,可以使用 DAY() 函数。这个函数接受一个日期参数,并返回该日期的天数部分(1到31)。

示例

从 event_date 中提取日期部分:

SELECT event_date, DAY(event_date) AS day
FROM events;
​

输出结果

event_date day
2023-07-01 1
2024-01-15 15

四、综合示例

我们可以将上述函数结合起来,从日期中同时提取年、月、日信息。

示例

从 event_date 中提取年、月、日:

SELECT event_date, 
       YEAR(event_date) AS year,
       MONTH(event_date) AS month,
       DAY(event_date) AS day
FROM events;
​

输出结果

event_date year month day
2023-07-01 2023 7 1
2024-01-15 2024 1 15

五、其他日期和时间函数

提取小时、分钟、秒

除了年、月、日,MySQL 还提供了提取时间部分的函数,例如 HOUR()MINUTE() 和 SECOND()

示例

假设有一个名为 log_time 的时间戳列,我们可以分别提取小时、分钟和秒:

SELECT log_time, 
       HOUR(log_time) AS hour,
       MINUTE(log_time) AS minute,
       SECOND(log_time) AS second
FROM logs;
​

输出结果

log_time hour minute second
2023-07-01 12:34:56 12 34 56
2024-01-15 23:45:01 23 45 1

提取星期几(Weekday)

可以使用 WEEKDAY() 函数提取星期几,从0(星期一)到6(星期日)。

示例

从 event_date 中提取星期几:

SELECT event_date, WEEKDAY(event_date) AS weekday
FROM events;
​

输出结果

event_date weekday
2023-07-01 5
2024-01-15 0

六、使用DATE_FORMAT函数

DATE_FORMAT() 函数允许根据指定的格式字符串来格式化日期。可以通过这种方式灵活地提取日期的各个部分。

示例

从 event_date 中提取年、月、日:

SELECT event_date, 
       DATE_FORMAT(event_date, '%Y') AS year,
       DATE_FORMAT(event_date, '%m') AS month,
       DATE_FORMAT(event_date, '%d') AS day
FROM events;
​

输出结果

event_date year month day
2023-07-01 2023 07 01
2024-01-15 2024 01 15

网站公告

今日签到

点亮在社区的每一天
去签到