Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите годината и месеца от дата в MySQL

Проблем:

Искате да получите годината и месеца от дадена дата в база данни на MySQL.

Пример:

Нашата база данни има таблица с име dates с данни в колоните id и date .

id дата
1 21.04.2008
2 14-12-1987 г.

Нека извлечем year и month от датата.

Решение 1:

SELECT
EXTRACT(YEAR FROM date) AS year,
EXTRACT(MONTH FROM date) AS month
FROM dates;

Резултатът е:

година месец
2008 4
1987 12

Дискусия:

За да получите колоните за годината и месеца, използвайте EXTRACT(part FROM date) функция. В това решение аргументът част се заменя с YEAR и MONTH за да получите year и month поотделно, всеки в своя колона.

Можете да научите повече за EXTRACT() в официалната документация на MySQL.

Решение 2:

SELECT
EXTRACT(YEAR_MONTH FROM date) AS year_and_month
FROM dates;

Резултатът е:

година_и_месец
200804
198712

Дискусия:

Това решение работи точно като предишното, но YEAR_MONTH се използва за събиране на годината и месеца в една колона, вместо да ги получава отделно. Обърнете внимание, че стойностите на годината и месеца не са отделени една от друга.

Решение 3:

SELECT
YEAR(date) AS year,
MONTH(date) AS month
FROM dates;

Резултатът е:

година месец
2008 4
1987 12

Дискусия:

Този път YEAR() и MONTH() функциите се използват за създаване на две колони. YEAR() връща годината и MONTH() връща месеца като число.

Решение 4:

SELECT
YEAR(date) AS year,
MONTHNAME(date) AS month
FROM dates;

Резултатът е:

година месец
2008 Април
1987 Декември

Дискусия:

За да получите името на месеца, използвайте MONTHNAME() функция. Резултатът показва името на месеца вместо номера на месеца.

Решение 5:

SELECT
DATE_FORMAT(date, '%Y-%m') AS year_and_month
FROM dates;

Резултатът е:

година_и_месец
2008-04
1987-12

Дискусия:

Използвайте DATE_FORMAT() функция за показване на date стойности в определен формат. Отнема date като първи аргумент и низ, описващ желания формат на датата като втори аргумент. В нашия случай низът '%Y-%m ', %Y връща годината, - се използва като разделител и %m връща месеца числово (може да бъде заменен с %M за да получите името на месеца).

Можете да научите повече за DATE_FORMAT() в официалната документация на MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Топ 50 въпроса за интервю за MySQL, които трябва да подготвите през 2022 г

  2. Вмъкване на масив в MySQL база данни с PHP

  3. Защо mysqli дава грешка при несинхронизиране на команди?

  4. Получаване на java.sql.SQLException:Операцията не е разрешена след затваряне на ResultSet

  5. Не мога да създам модел на данни за обект - използвайки MySql и EF6