MySQL datatype to store month and year only?



You need to store the date as the complete date time rather than storing only month and year. If you declare as a datetime then you can extract the month and year using MONTH() and YEAR() function from MySQL.

The syntax is as follows −

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

To understand the above syntax, let us create a table. The query to create a table is as follows −

mysql> create table OnlyMonthandYear    -> (       -> DueDateTime datetime    -> ); Query OK, 0 rows affected (0.56 sec)

Insert date in the table using insert command. The query to insert record is as follows −

mysql> insert into OnlyMonthandYear values('2016-12-10'); Query OK, 1 row affected (0.19 sec) mysql> insert into OnlyMonthandYear values('2017-10-21'); Query OK, 1 row affected (0.15 sec) mysql> insert into OnlyMonthandYear values('2018-03-25'); Query OK, 1 row affected (0.31 sec) mysql> insert into OnlyMonthandYear values('2018-12-18'); Query OK, 1 row affected (0.20 sec)

Display all records from table using select command. The query is as follows −

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)

Here is the query that extracts the month and year only from datetime datatype column.

The query is as follows −

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

Output

+-----------+----------+ | OnlyMonth | OnlyYear | +-----------+----------+ |        12 |     2016 | |        10 |     2017 | |         3 |     2018 | |        12 |     2018 | +-----------+----------+ 4 rows in set (0.02 sec)
Updated on: 2020-06-29T08:12:26+05:30

6K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements