Oto lista jednostek, które mogą być używane w funkcjach daty i godziny MySQL i interwałach.
unit Wartość | Oczekiwane expr Format |
---|---|
MICROSECOND | MICROSECONDS |
SECOND | SECONDS |
MINUTE | MINUTES |
HOUR | HOURS |
DAY | DAYS |
WEEK | WEEKS |
MONTH | MONTHS |
QUARTER | QUARTER |
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' |
Te jednostki mogą być używane z +
i -
operatory podczas wykonywania arytmetyki na datach z funkcjami takimi jak ADDDATE()
, SUBDATE()
, DATE_ADD()
, DATE_SUB()
i EXTRACT()
.
Mogą być również używane w ON SCHEDULE
klauzula CREATE_EVENT()
i ALTER_EVENT()
funkcje.
Pierwszych dziewięć jednostek można użyć z TIMESTAMPADD()
i TIMESTAMPDIFF()
(te dwie funkcje nie obsługują jednostek złożonych w momencie pisania tego tekstu).
Jednostki zawierające podkreślenie są jednostkami złożonymi. Składają się one z więcej niż jednej jednostki czasu podstawowego. Można je traktować jako skrócony sposób na określenie wielu jednostek za jednym razem. Każda jednostka może być oddzielona dowolnym znakiem interpunkcyjnym.
Przykłady
Oto przykład dodawania roku do wyrażenia daty i godziny:
SELECT '2035-01-01 01:30:45' + INTERVAL 1 YEAR;
Wynik:
2036-01-01 01:30:45
W tym przypadku używamy +
operatora, aby wykonać dodawanie.
Funkcje daty/godziny
Jednostki daty i czasu mogą być używane z różnymi funkcjami daty.
Tutaj jest z DATE_ADD()
funkcja:
SELECT DATE_ADD('2035-01-01 01:30:45', INTERVAL 1 YEAR);
Wynik:
2036-01-01 01:30:45
Jednostki złożone
Oto przykład wykorzystujący jednostki złożone:
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";
Wynik:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 | +---------------------+---------------------+---------------------+
Liczby całkowite mogą być oddzielone dowolnym znakiem interpunkcyjnym. Dlatego możemy zastąpić dwukropki kropkami, aby uzyskać ten sam wynik:
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";
Wynik:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 | +---------------------+---------------------+---------------------+