MySQL 获取年份

MySQL 获取年份

MySQL 获取年份

MySQL是一种常用的关系型数据库管理系统,用于存储、管理和检索数据。在处理日期和时间类型数据时,我们经常需要从日期中提取特定的部分,如年份、月份、日期等。本文将重点介绍如何在MySQL中获取年份。

1. YEAR() 函数

MySQL内置了许多日期和时间函数,其中包含了一个YEAR()函数,可用于从日期或日期时间型的字段中提取年份。

语法

YEAR(date)

参数

  • date:要获取年份的日期或日期时间型字段。

示例

SELECT YEAR('2022-01-01');  -- 返回 2022
SELECT YEAR('2022-12-31 23:59:59');  -- 返回 2022

2. EXTRACT() 函数

EXTRACT()函数是MySQL提供的另一个强大的日期和时间函数,它可用于从日期或日期时间型字段中提取指定的部分。

语法

EXTRACT(unit FROM date)

参数

  • unit:要提取的时间单位,可选值包括YEARMONTHDAY等。
  • date:要提取时间单位的日期或日期时间型字段。

示例

SELECT EXTRACT(YEAR FROM '2022-01-01');  -- 返回 2022
SELECT EXTRACT(YEAR FROM '2022-12-31 23:59:59');  -- 返回 2022

3. SUBSTRING() 函数

如果存储日期或日期时间的字段类型是字符串型,我们可以使用SUBSTRING()函数从字符串中截取特定位置的字符,以获取年份。

语法

SUBSTRING(str, start, length)

参数

  • str:要截取的字符串。
  • start:指定从字符串的哪个位置开始截取。
  • length:指定截取的字符数。

示例

SELECT SUBSTRING('2022-01-01', 1, 4);  -- 返回 2022
SELECT SUBSTRING('2022-12-31 23:59:59', 1, 4);  -- 返回 2022

4. STR_TO_DATE() 函数

如果日期或日期时间的字段类型是字符串型且格式不是MySQL默认的日期格式,我们可以使用STR_TO_DATE()函数将字符串转换为日期后再提取年份。

语法

STR_TO_DATE(str, format)

参数

  • str:要转换的字符串。
  • format:要转换的字符串的格式,参照MySQL的日期格式。

示例

SELECT YEAR(STR_TO_DATE('01-01-2022', '%d-%m-%Y'));  -- 返回 2022
SELECT YEAR(STR_TO_DATE('31-12-2022 23:59:59', '%d-%m-%Y %H:%i:%s'));  -- 返回 2022

5. 示例代码运行结果

下面是对以上示例代码的运行结果:

+----------------------+
| YEAR('2022-01-01')   |
+----------------------+
| 2022                 |
+----------------------+

+--------------------------------+
| YEAR('2022-12-31 23:59:59')    |
+--------------------------------+
| 2022                           |
+--------------------------------+

+----------------------------------+
| EXTRACT(YEAR FROM '2022-01-01') |
+----------------------------------+
| 2022                             |
+----------------------------------+

+-----------------------------------------+
| EXTRACT(YEAR FROM '2022-12-31 23:59:59') |
+-----------------------------------------+
| 2022                                    |
+-----------------------------------------+

+---------------------------------+
| SUBSTRING('2022-01-01', 1, 4)  |
+---------------------------------+
| 2022                            |
+---------------------------------+

+----------------------------------------+
| SUBSTRING('2022-12-31 23:59:59', 1, 4) |
+----------------------------------------+
| 2022                                   |
+----------------------------------------+

+------------------------------------------------+
| YEAR(STR_TO_DATE('01-01-2022', '%d-%m-%Y'))    |
+------------------------------------------------+
| 2022                                           |
+------------------------------------------------+

+-------------------------------------------------------+
| YEAR(STR_TO_DATE('31-12-2022 23:59:59', '%d-%m-%Y %H:%i:%s')) |
+-------------------------------------------------------+
| 2022                                                  |
+-------------------------------------------------------+

通过以上示例,我们可以看到不同函数获取年份的结果都是一样的,可以根据实际情况选择适合的函数来提取日期字段中的年份。

结论

通过YEAR()EXTRACT()SUBSTRING()STR_TO_DATE()等函数,我们可以轻松地从日期或日期时间型字段中获取年份。这些函数提供了多种处理日期的方法,开发者可以根据实际需求选择合适的函数使用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程