sql >> Database >  >> RDS >> Mysql

Hoe u het jaar en de maand uit een datum haalt in MySQL

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.


  1. Hoe de RPAD()-functie werkt in MySQL

  2. Hoe google translate URL te gebruiken in Oracle plsql

  3. Script om alle verbindingen met een database te beëindigen (meer dan RESTRICTED_USER ROLLBACK)

  4. MySQL relationele databases gebruiken op Debian 6 (Squeeze)