W MariaDB, MAKEDATE()
to wbudowana funkcja daty i czasu, która zwraca datę na podstawie roku i dnia roku podanych jako argumenty.
Składnia
Składnia wygląda tak:
MAKEDATE(year,dayofyear)
Przykład
Oto przykład:
SELECT MAKEDATE(2030, 10);
Wynik:
+--------------------+ | MAKEDATE(2030, 10) | +--------------------+ | 2030-01-10 | +--------------------+
I jeszcze jeden:
SELECT MAKEDATE(2030, 100);
Wynik:
+---------------------+ | MAKEDATE(2030, 100) | +---------------------+ | 2030-04-10 | +---------------------+
Zwróć datę w przyszłym roku
Jeśli drugi argument (dzień roku) jest większy niż liczba dni w roku, to otrzymaną datą jest rok przyszły.
Przykład:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Wynik:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Zero dni
Drugi argument (dzień roku) musi być większy niż 0
lub wynik to null
.
Przykład:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Wynik:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Brakujący argument
Wywołanie MAKEDATE()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT MAKEDATE();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
I kolejny przykład:
SELECT MAKEDATE( 2020, 10, 20 );
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Zrób sobie czas
Zobacz także MAKETIME()
do konstruowania wartości czasu na podstawie godzin, minut i sekund.