Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać rok i miesiąc z daty w MySQL?

Problem:

Chcesz uzyskać rok i miesiąc z podanej daty w bazie danych MySQL.

Przykład:

Nasza baza danych zawiera tabelę o nazwie dates z danymi w kolumnach id i date .

id data
1 2008-04-21
2 14.12.1987

Wyodrębnijmy year i month od daty.

Rozwiązanie 1:

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

Wynik:

rok miesiąc
2008 4
1987 12

Dyskusja:

Aby uzyskać kolumny roku i miesiąca, użyj EXTRACT(part FROM date) funkcjonować. W tym rozwiązaniu argument part jest zastępowany przez YEAR i MONTH aby uzyskać year i month osobno, każdy w osobnej kolumnie.

Możesz dowiedzieć się więcej o EXTRACT() w oficjalnej dokumentacji MySQL.

Rozwiązanie 2:

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

Wynik:

rok_i_miesiąc
200804
198712

Dyskusja:

To rozwiązanie działa dokładnie tak samo jak poprzednie, ale YEAR_MONTH służy do zebrania roku i miesiąca w jednej kolumnie, zamiast umieszczania ich osobno. Zauważ, że wartości roku i miesiąca nie są od siebie oddzielone.

Rozwiązanie 3:

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

Wynik:

rok miesiąc
2008 4
1987 12

Dyskusja:

Tym razem YEAR() i MONTH() funkcje służą do tworzenia dwóch kolumn. YEAR() zwraca rok i MONTH() zwraca miesiąc jako liczbę.

Rozwiązanie 4:

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

Wynik:

rok miesiąc
2008 Kwiecień
1987 grudzień

Dyskusja:

Aby uzyskać nazwę miesiąca, użyj MONTHNAME() funkcjonować. Wynik wyświetla nazwę miesiąca zamiast numeru miesiąca.

Rozwiązanie 5:

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

Wynik:

rok_i_miesiąc
2008-04
1987-12

Dyskusja:

Użyj DATE_FORMAT() funkcja wyświetlania date wartości w określonym formacie. Zajmuje date jako pierwszy argument i łańcuch opisujący żądany format daty jako drugi argument. W naszym przypadku ciąg '%Y-%m ', %Y zwraca rok, - jest używany jako separator, a %m zwraca miesiąc numerycznie (można go zastąpić przez %M aby uzyskać nazwę miesiąca).

Możesz dowiedzieć się więcej o DATE_FORMAT() w oficjalnej dokumentacji 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. Wartość strefy czasowej serwera „AEST” jest nierozpoznana lub reprezentuje więcej niż jedną strefę czasową

  2. Jaki jest najprostszy sposób wypełniania pustych dat w wynikach sql (na końcu mysql lub perl)?

  3. Jak naprawić błędy nieprawidłowej wartości ciągu?

  4. Jak mogę połączyć się z MySQL w Pythonie 3 w systemie Windows?

  5. Jak przywrócić pojedynczą tabelę MySQL za pomocą mysqldump?