Problem:
Sie möchten den Monat aus einer date/datetime-Spalte in einer MySQL-Datenbank abrufen.
Beispiel:
Unsere Datenbank hat eine Tabelle namens apartment_rental mit Daten in den Spalten id , address , floor und start_date .
| id | Adresse | Etage | Startdatum |
|---|---|---|---|
| 1 | 700 Oak Street | 2 | 2019-03-20 |
| 2 | Hauptstraße 295 | 3 | 2019-05-31 |
| 3 | Staatsstraße 506 | 1 | 2019-01-03 |
| 4 | 3949 Route 31 | 1 | 2019-02-01 |
Erhalten Sie für jede verfügbare Wohnung die Adresse, die Etage und den Monat, in dem sie verfügbar ist. Erhalten Sie nur den Monat ab dem start_date Spalte.
Lösung:
Wir verwenden den MONTH() Funktion. Hier ist die Abfrage, die Sie schreiben würden:
SELECT address,
floor,
MONTH(start_date)
AS start_month
FROM apartment_rental;
Hier ist das Ergebnis der Abfrage:
| Adresse | Etage | start_month |
|---|---|---|
| 700 Oak Street | 2 | 3 |
| Hauptstraße 295 | 3 | 5 |
| Staatsstraße 506 | 1 | 1 |
| 3949 Route 31 | 1 | 2 |
Diskussion:
Verwenden Sie den MONTH() Funktion zum Abrufen eines Monats aus einer date/datetime/timestamp-Spalte in MySQL. Diese Funktion akzeptiert nur ein Argument – entweder einen Ausdruck, der einen Datums-/Datumszeit-/Zeitstempelwert zurückgibt, oder den Namen einer Datums-/Datumszeit-/Zeitstempelspalte. (In unserem Beispiel verwenden wir das start_date Spalte Datum Datentyp).
MONTH() gibt den Monat als Ganzzahl von 1 bis 12 zurück (1 ist Januar und 12 ist Dezember). In unserem Beispiel die Wohnung in der 700 Oak Street beginnt in Monat 3 mit der Vermietung, da das Startdatum '2019-03-20' ist