Problem:
Sie möchten einem datetime-Wert in einer MySQL-Datenbank eine bestimmte Zeitspanne hinzufügen.
Beispiel:
Unsere Datenbank hat eine Tabelle namens flight_schedule
mit Daten in den Spalten flight
, aircraft
und arrival_datetime
.
Flug | Flugzeug | arrival_datetime |
---|---|---|
EK10 | L1201 | 2019-04-20 15:15:00 |
AY12 | K2001 | 2019-03-31 20:10:00 |
LA105 | F205 | 2019-08-03 11:15:00 |
LH30 | K256 | 2019-07-01 12:47:00 |
Lassen Sie uns für jeden Flug den Flugcode, den Flugzeugcode und ein neues Ankunftsdatum und eine neue Ankunftszeit abrufen. Um die new_arrival_datetime
zu berechnen , addieren wir für jede Ankunft 2 Stunden und 10 Minuten zur aktuellen Zeit hinzu – so viel Verspätung haben diese Flüge.
Lösung:
Wir verwenden ADDTIME()
Funktion. Hier ist die Abfrage, die Sie schreiben würden:
SELECT flight, aircraft, ADDTIME(arrival_datetime, ‘2:10’) AS new_arrival_datetime FROM flight_schedule;
Hier ist das Ergebnis der Abfrage:
Flug | Flugzeug | new_arrival_datetime |
---|---|---|
EK10 | L1201 | 2019-04-20 17:25:00 |
AY12 | K2001 | 2019-03-31 22:20:00 |
LA105 | F205 | 2019-08-03 13:25:00 |
LH30 | K256 | 2019-07-01 14:57:00 |
Diskussion:
Verwenden Sie die ADDTIME()-Funktion, wenn Sie eine neue Datumszeit auswählen möchten, indem Sie eine bestimmte Zeit zu einem Datumzeit-/Zeitstempel-/Zeitwert hinzufügen.
Diese Funktion benötigt zwei Argumente. Das erste Argument ist die Datumszeit/Uhrzeit, zu der wir Zeit hinzufügen; Dies kann ein Ausdruck sein, der einen Zeit-/Datumszeit-/Zeitstempelwert oder den Namen einer Zeit-/Datumszeit-/Zeitstempelspalte zurückgibt. In unserem Beispiel verwenden wir den arrival_datetime
Spalte, die datetime ist Datentyp.
Das zweite Argument ist eine Zeichenfolge, die die Zeitdauer enthält, die zum ersten Argument hinzugefügt werden soll (in unserem Beispiel „2:10“ oder 2 Stunden und 10 Minuten).
Sie können einem datetime/time-Wert auch Sekundenbruchteile und sogar Tage hinzufügen. Die folgende Abfrage fügt 3 Tage, 1 Stunde, 1 Minute, 1 Sekunde und 111 Sekundenbruchteile zu einem Datum und einer Uhrzeit hinzu:
SELECT ADDTIME('2019-02-05 10:12:11', '3 1:1:1.111');
Es gibt zurück:
2019-02-08 11:13:12.111000
ADDTIME() gibt einen String mit der neuen Zeit zurück. In unserem Beispiel die neue Ankunftszeit für Flug „EK10“ ist „2019-04-20 17:25:00“ – zwei Stunden und zehn Minuten nach seiner ursprünglichen Datumszeit von
‘2019-04-20 15:15:00’.