Mysql
 sql >> Database >  >> RDS >> Mysql

Come ottenere l'anno e il mese da una data in MySQL

Problema:

Vuoi ottenere l'anno e il mese da una determinata data in un database MySQL.

Esempio:

Il nostro database ha una tabella denominata dates con i dati nelle colonne id e date .

id data
1 21-04-2008
2 14-12-1987

Estraiamo l'year e il month dalla data.

Soluzione 1:

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

Il risultato è:

mese
anno
2008 4
1987 12

Discussione:

Per ottenere le colonne dell'anno e del mese, utilizza EXTRACT(part FROM date) funzione. In questa soluzione, l'argomento della parte viene sostituito da YEAR e MONTH per ottenere l'year e il month separatamente, ciascuno nella propria colonna.

Puoi saperne di più su EXTRACT() nella documentazione ufficiale di MySQL.

Soluzione 2:

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

Il risultato è:

anno_e_mese
200804
198712

Discussione:

Questa soluzione funziona esattamente come la precedente, ma YEAR_MONTH viene utilizzato per riunire l'anno e il mese in una colonna invece di ottenerli separatamente. Si noti che i valori dell'anno e del mese non sono separati l'uno dall'altro.

Soluzione 3:

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

Il risultato è:

mese
anno
2008 4
1987 12

Discussione:

Questa volta, il YEAR() e il MONTH() le funzioni vengono utilizzate per creare due colonne. YEAR() restituisce l'anno e MONTH() restituisce il mese come numero.

Soluzione 4:

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

Il risultato è:

mese
anno
2008 Aprile
1987 Dicembre

Discussione:

Per ottenere il nome del mese, usa MONTHNAME() funzione. Il risultato mostra il nome del mese invece del numero del mese.

Soluzione 5:

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

Il risultato è:

anno_e_mese
2008-04
1987-12

Discussione:

Usa il DATE_FORMAT() funzione per visualizzare la date valori in un formato specifico. Prende la date come primo argomento e una stringa che descrive il formato della data desiderato come secondo argomento. Nel nostro caso, la stringa '%Y-%m ', %Y restituisce l'anno, ' - ' viene utilizzato come separatore e %m restituisce il mese in forma numerica (può essere sostituito da %M per ottenere il nome del mese).

Puoi saperne di più su DATE_FORMAT() nella documentazione ufficiale di MySQL.