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 è:
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 è:
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 è:
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.