Hier ist eine Liste von Einheiten, die in MySQL-Datumszeit- und Intervallfunktionen verwendet werden können.
unit Wert | Erwarteter expr Formatieren |
---|---|
MICROSECOND | MICROSECONDS |
SECOND | SECONDS |
MINUTE | MINUTES |
HOUR | HOURS |
DAY | DAYS |
WEEK | WEEKS |
MONTH | MONTHS |
QUARTER | QUARTERS |
YEAR | YEARS |
SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' |
MINUTE_MICROSECOND | 'MINUTES:SECONDS.MICROSECONDS' |
MINUTE_SECOND | 'MINUTES:SECONDS' |
HOUR_MICROSECOND | 'HOURS:MINUTES:SECONDS.MICROSECONDS' |
HOUR_SECOND | 'HOURS:MINUTES:SECONDS' |
HOUR_MINUTE | 'HOURS:MINUTES' |
DAY_MICROSECOND | 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS' |
DAY_SECOND | 'DAYS HOURS:MINUTES:SECONDS' |
DAY_MINUTE | 'DAYS HOURS:MINUTES' |
DAY_HOUR | 'DAYS HOURS' |
YEAR_MONTH | 'YEARS-MONTHS' |
Diese Einheiten können mit +
verwendet werden und -
Operatoren bei der Durchführung von Arithmetik mit Datumsangaben, mit Funktionen wie ADDDATE()
, SUBDATE()
, DATE_ADD()
, DATE_SUB()
, und EXTRACT()
.
Sie können auch im ON SCHEDULE
verwendet werden -Klausel von CREATE_EVENT()
und ALTER_EVENT()
Funktionen.
Die ersten neun Einheiten können mit TIMESTAMPADD()
verwendet werden und TIMESTAMPDIFF()
(Diese beiden Funktionen unterstützen zum Zeitpunkt des Schreibens keine zusammengesetzten Einheiten).
Die Einheiten, die einen Unterstrich enthalten, sind zusammengesetzte Einheiten. Diese bestehen aus mehr als einer Basiszeiteinheit. Diese können als Kurzform zur Angabe mehrerer Einheiten auf einmal betrachtet werden. Jede Einheit kann durch ein beliebiges Satzzeichen getrennt werden.
Beispiele
Hier ist ein Beispiel für das Hinzufügen eines Jahres zu einem datetime-Ausdruck:
SELECT '2035-01-01 01:30:45' + INTERVAL 1 YEAR;
Ergebnis:
2036-01-01 01:30:45
In diesem Fall verwenden wir den +
Operator, um die Addition auszuführen.
Datetime-Funktionen
Die Datums- und Zeiteinheiten können mit verschiedenen Datumsfunktionen verwendet werden.
Hier ist es mit dem DATE_ADD()
Funktion:
SELECT DATE_ADD('2035-01-01 01:30:45', INTERVAL 1 YEAR);
Ergebnis:
2036-01-01 01:30:45
Zusammengesetzte Einheiten
Hier ist ein Beispiel, das zusammengesetzte Einheiten verwendet:
SELECT
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:30:25' DAY_MINUTE) AS "DAY_MINUTE";
Ergebnis:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 | +---------------------+---------------------+---------------------+
Die ganzen Zahlen können durch ein beliebiges Satzzeichen getrennt werden. Daher könnten wir die Doppelpunkte durch Punkte ersetzen, um das gleiche Ergebnis zu erhalten:
SELECT
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.25.35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.30.25' DAY_MINUTE) AS "DAY_MINUTE";
Ergebnis:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 | +---------------------+---------------------+---------------------+