Problem:
Du ønsker at få året og måneden fra en given dato i en MySQL-database.
Eksempel:
Vores database har en tabel med navnet dates med data i kolonnerne id og date .
| id | dato |
|---|---|
| 1 | 2008-04-21 |
| 2 | 1987-12-14 |
Lad os udtrække year og month fra datoen.
Løsning 1:
SELECT EXTRACT(YEAR FROM date) AS year, EXTRACT(MONTH FROM date) AS month FROM dates;
Resultatet er:
| år | måned |
|---|---|
| 2008 | 4 |
| 1987 | 12 |
Diskussion:
For at få årstal og månedskolonner skal du bruge EXTRACT(part FROM date) fungere. I denne løsning er part-argumentet erstattet af YEAR og MONTH for at få year og month separat, hver i sin egen kolonne.
Du kan lære mere om EXTRACT() i den officielle MySQL-dokumentation.
Løsning 2:
SELECT EXTRACT(YEAR_MONTH FROM date) AS year_and_month FROM dates;
Resultatet er:
| år_og_måned |
|---|
| 200804 |
| 198712 |
Diskussion:
Denne løsning fungerer nøjagtigt som den forrige, men YEAR_MONTH bruges til at få året og måneden samlet i én kolonne i stedet for at få dem hver for sig. Bemærk, at værdierne for året og måneden ikke er adskilt fra hinanden.
Løsning 3:
SELECT YEAR(date) AS year, MONTH(date) AS month FROM dates;
Resultatet er:
| år | måned |
|---|---|
| 2008 | 4 |
| 1987 | 12 |
Diskussion:
Denne gang er YEAR() og MONTH() funktioner bruges til at oprette to kolonner. YEAR() returnerer året og MONTH() returnerer måneden som et tal.
Løsning 4:
SELECT YEAR(date) AS year, MONTHNAME(date) AS month FROM dates;
Resultatet er:
| år | måned |
|---|---|
| 2008 | April |
| 1987 | December |
Diskussion:
For at få navnet på måneden, brug MONTHNAME() fungere. Resultatet viser månedens navn i stedet for månedsnummeret.
Løsning 5:
SELECT DATE_FORMAT(date, '%Y-%m') AS year_and_month FROM dates;
Resultatet er:
| år_og_måned |
|---|
| 2008-04 |
| 1987-12 |
Diskussion:
Brug DATE_FORMAT() funktion til at vise date værdier i et bestemt format. Det tager date som det første argument og en streng, der beskriver det ønskede datoformat som det andet argument. I vores tilfælde er strengen '%Y-%m ', %Y returnerer året, ‘ - ' bruges som en separator, og %m returnerer måneden numerisk (den kan erstattes af %M). for at få månedens navn).
Du kan lære mere om DATE_FORMAT() i den officielle MySQL-dokumentation.