MariaDB YEAR() 函数的基础用法与实例

MariaDB YEAR() 函数用来获取指定日期或日期时间值对应的年份值。

发布于

MariaDB YEAR() 函数用来获取指定日期或日期时间值对应的年份值。它通常与日期和时间操作相关,比如按年份分组统计、过滤特定年份的记录等。

语法

MairaDB YEAR() 函数的语法如下:

YEAR(date)
  • date: 要获取年份值的日期或日期时间值,可以是 DATE、DATETIME 或 TIMESTAMP 类型。

函数返回值是一个介于 1000 到 9999 之间的整数,表示输入日期或日期时间值对应的年份。

实例

获取当前年份

本实例展示如何使用 YEAR() 函数获取当前年份。

SELECT YEAR(CURRENT_DATE()) AS curr_year;

以下是该语句的输出:

+-----------+
| curr_year |
+-----------+
|      2024 |
+-----------+

通过将 CURRENT_DATE() 函数的结果传递给 YEAR(),可以获取当前日期对应的年份值。输出结果显示当前年份为 2023 年。

获取指定日期的年份

本实例展示如何获取指定日期的年份值。

SELECT YEAR('2024-06-15') AS year;

以下是该语句的输出:

+------+
| year |
+------+
| 2024 |
+------+

直接将日期字符串作为参数传递给 YEAR() 函数,即可获取该日期对应的年份值。输出结果显示 2024-06-15 这个日期对应的年份为 2024 年。

获取一列日期或日期时间中的年份

本实例展示如何从一列日期或日期时间值中获取对应的年份。

DROP TABLE IF EXISTS mytable;
CREATE TABLE mytable (dt DATETIME);
INSERT INTO mytable VALUES ('2022-03-15 09:30:00'), ('2023-08-22 14:45:30'), ('2024-12-01 20:15:45');

SELECT dt, YEAR(dt) AS year
FROM mytable;

以下是该语句的输出:

+---------------------+------+
| dt                  | year |
+---------------------+------+
| 2022-03-15 09:30:00 | 2022 |
| 2023-08-22 14:45:30 | 2023 |
| 2024-12-01 20:15:45 | 2024 |
+---------------------+------+

首先创建了一个包含日期时间值的表 mytable,然后通过 SELECT 语句从该表中获取日期时间值及对应的年份值。结果显示,YEAR() 函数成功从每个日期时间值中提取出了对应的年份。

按年份分组统计记录数

本实例展示如何使用 YEAR() 函数按年份对记录进行分组统计。

DROP TABLE IF EXISTS orders;
CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at DATETIME
);

INSERT INTO orders (created_at) VALUES
    ('2022-05-01 10:00:00'),
    ('2023-03-15 14:30:00'),
    ('2022-11-22 09:15:00'),
    ('2023-07-04 16:45:00'),
    ('2023-12-25 11:20:00');

SELECT YEAR(created_at) AS year, COUNT(*) AS orders
FROM orders
GROUP BY YEAR(created_at)
ORDER BY year;

以下是该语句的输出:

+------+--------+
| year | orders |
+------+--------+
| 2022 |      2 |
| 2023 |      3 |
+------+--------+

通过对 orders 表中的 created_at 字段应用 YEAR() 函数并按年份进行分组统计,可以方便地获取每一年的订单数量。结果显示 2022 年有 2 个订单,而 2023 年有 3 个订单。

过滤特定年份的记录

本实例展示如何使用 YEAR() 函数过滤出特定年份的记录。

DROP TABLE IF EXISTS users;
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    joined_at DATE
);

INSERT INTO users (name, joined_at) VALUES
    ('Alice', '2020-03-15'),
    ('Bob', '2021-06-22'),
    ('Charlie', '2022-11-01'),
    ('David', '2023-04-30'),
    ('Eve', '2021-09-12');

SELECT id, name, joined_at
FROM users
WHERE YEAR(joined_at) = 2022;

以下是该语句的输出:

+----+---------+------------+
| id | name    | joined_at  |
+----+---------+------------+
|  3 | Charlie | 2022-11-01 |
+----+---------+------------+

首先创建了一个包含用户注册日期的表 users,然后使用 WHERE 子句中的 YEAR() 函数过滤出 joined_at 字段对应年份为 2022 年的记录。结果显示,只有 Charlie 这个用户在 2022 年注册。

相关函数

以下是几个与 MairaDB YEAR() 相关的几个函数:

  • MariaDB MONTH() 函数用来获取指定日期的月份值。
  • MariaDB DAY() 函数用来获取指定日期的天数值。
  • MariaDB HOUR() 函数用来获取指定时间的小时值。
  • MariaDB MINUTE() 函数用来获取指定时间的分钟值。
  • MariaDB SECOND() 函数用来获取指定时间的秒数值。

结论

MariaDB YEAR() 函数是一个非常常用的日期和时间处理函数,它可以方便地从日期或日期时间值中获取对应的年份值。通过本文的实例,我们学习了如何使用该函数获取当前年份、获取指定日期的年份、从一列日期或日期时间中获取年份、按年份分组统计记录数以及过滤特定年份的记录等操作。掌握了 YEAR() 函数的用法,将有助于我们更好地处理与日期和时间相关的问题。