MySQL数据类型仅存储月份和年份?

您需要将日期存储为完整的日期时间,而不是仅存储月份和年份。如果声明为日期时间,则可以使用MySQL中的MONTH()YEAR()函数提取月份和年份。

语法如下-

select MONTH(yourDateTimeColumnName) as anyVariableName1,
YEAR(yourDateTimeColumnName) as anyVariableName2
from yourTableName;

为了理解上述语法,让我们创建一个表。创建表的查询如下-

mysql> create table OnlyMonthandYear
   -> (
      -> DueDateTime datetime
   -> );

使用insert命令在表中插入日期。插入记录的查询如下-

mysql> insert into OnlyMonthandYear values('2016-12-10');

mysql> insert into OnlyMonthandYear values('2017-10-21');

mysql> insert into OnlyMonthandYear values('2018-03-25');

mysql> insert into OnlyMonthandYear values('2018-12-18');

使用select命令显示表中的所有记录。查询如下-

mysql> select *from OnlyMonthandYear;
+---------------------+
| DueDateTime         |
+---------------------+
| 2016-12-10 00:00:00 |
| 2017-10-21 00:00:00 |
| 2018-03-25 00:00:00 |
| 2018-12-18 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

这是仅从datetime数据类型列中提取月份和年份的查询。

查询如下-

mysql> select Month(DueDateTime) as OnlyMonth,Year(DueDateTime) as OnlyYear from
OnlyMonthandYear;

输出结果

+-----------+----------+
| OnlyMonth | OnlyYear |
+-----------+----------+
|        12 |     2016 |
|        10 |     2017 |
|         3 |     2018 |
|        12 |     2018 |
+-----------+----------+
4 rows in set (0.02 sec)