Probleem:
U wilt het jaar en de maand vanaf een bepaalde datum in een MySQL-database krijgen.
Voorbeeld:
Onze database heeft een tabel met de naam dates
met gegevens in de kolommen id
en date
.
id | datum |
---|---|
1 | 21-04-2008 |
2 | 1987/12/14 |
Laten we het year
extraheren en de month
vanaf de datum.
Oplossing 1:
SELECT EXTRACT(YEAR FROM date) AS year, EXTRACT(MONTH FROM date) AS month FROM dates;
Het resultaat is:
jaar | maand |
---|---|
2008 | 4 |
1987 | 12 |
Discussie:
Gebruik de EXTRACT(part FROM date)
. om de kolommen voor het jaar en de maand te krijgen functie. In deze oplossing wordt het argument part vervangen door YEAR
en MONTH
om het year
te krijgen en de month
afzonderlijk, elk in een eigen kolom.
U kunt meer leren over EXTRACT()
in de officiële MySQL-documentatie.
Oplossing 2:
SELECT EXTRACT(YEAR_MONTH FROM date) AS year_and_month FROM dates;
Het resultaat is:
jaar_en_maand |
---|
200804 |
198712 |
Discussie:
Deze oplossing werkt precies hetzelfde als de vorige, maar YEAR_MONTH
wordt gebruikt om het jaar en de maand samen in één kolom te krijgen in plaats van ze apart te krijgen. Merk op dat de waarden van het jaar en de maand niet van elkaar gescheiden zijn.
Oplossing 3:
SELECT YEAR(date) AS year, MONTH(date) AS month FROM dates;
Het resultaat is:
jaar | maand |
---|---|
2008 | 4 |
1987 | 12 |
Discussie:
Deze keer, de YEAR()
en de MONTH()
functies worden gebruikt om twee kolommen te maken. YEAR()
geeft het jaar en MONTH()
. terug geeft de maand terug als een getal.
Oplossing 4:
SELECT YEAR(date) AS year, MONTHNAME(date) AS month FROM dates;
Het resultaat is:
jaar | maand |
---|---|
2008 | April |
1987 | december |
Discussie:
Gebruik de MONTHNAME()
. om de naam van de maand te krijgen functie. Het resultaat geeft de maandnaam weer in plaats van het maandnummer.
Oplossing 5:
SELECT DATE_FORMAT(date, '%Y-%m') AS year_and_month FROM dates;
Het resultaat is:
jaar_en_maand |
---|
2008-04 |
1987-12 |
Discussie:
Gebruik de DATE_FORMAT()
functie om date
weer te geven waarden in een bepaald formaat. Het duurt de date
als het eerste argument en een tekenreeks die het gewenste datumformaat beschrijft als het tweede argument. In ons geval is de string '%Y-%m
', %Y
geeft het jaar terug, ‘ -
’ wordt gebruikt als scheidingsteken, en %m
geeft de maand numeriek terug (deze kan worden vervangen door %M
om de naam van de maand te krijgen).
U kunt meer leren over DATE_FORMAT()
in de officiële MySQL-documentatie.