W MariaDB, QUARTER()
to wbudowana funkcja daty i czasu, która zwraca kwartał z podanego wyrażenia daty.
Akceptuje jeden argument, czyli datę, z której chcesz wyodrębnić kwartał.
Zwraca kwartał jako liczbę z zakresu 1
do 4
. Dla dat z zerowymi miesiącami (np. 0000-00-00
lub 2025-00-00
), wynikiem jest 0
.
Składnia
Składnia wygląda tak:
QUARTER(date)
Gdzie date
jest wyrażeniem daty, z którego należy pobrać kwartał.
Przykład
Oto przykład:
SELECT QUARTER('2030-08-01');
Wynik:
+-----------------------+ | QUARTER('2030-08-01') | +-----------------------+ | 3 | +-----------------------+
Wartości daty i godziny
Działa również z wartościami daty i godziny:
SELECT QUARTER('2030-08-01 10:30:45');
Wynik:
+--------------------------------+ | QUARTER('2030-08-01 10:30:45') | +--------------------------------+ | 3 | +--------------------------------+
Zero miesięcy
Daty z zerowymi miesiącami dają w wyniku 0
.
Przykład:
SELECT QUARTER('2030-00-00');
Wynik:
+-----------------------+ | QUARTER('2030-00-00') | +-----------------------+ | 0 | +-----------------------+
Daty numeryczne
Możliwe jest również przekazywanie dat jako liczby, o ile ma to sens jako data.
Przykład
SELECT QUARTER(20301125);
Wynik:
+-------------------+ | QUARTER(20301125) | +-------------------+ | 4 | +-------------------+
Lub nawet następujący (który używa dwucyfrowego roku):
SELECT QUARTER(301125);
Wynik:
+-----------------+ | QUARTER(301125) | +-----------------+ | 4 | +-----------------+
Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część dnia do nieprawidłowego dnia:
SELECT QUARTER(20301135);
Wynik:
+-------------------+ | QUARTER(20301135) | +-------------------+ | NULL | +-------------------+ 1 row in set, 1 warning (0.000 sec)
Możemy sprawdzić ostrzeżenie w następujący sposób:
SHOW WARNINGS;
Wynik:
+---------+------+--------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------+ | Warning | 1292 | Incorrect datetime value: '20301135' | +---------+------+--------------------------------------+
Inne ograniczniki
Możesz użyć innych ograniczników daty. MariaDB jest dość wyrozumiała, jeśli chodzi o ograniczniki dat. Oto kilka poprawnych przykładów:
SELECT
QUARTER('2030/06/25'),
QUARTER('2030,06,25'),
QUARTER('2030:06:25'),
QUARTER('2030;06!25');
Wynik (przy użyciu wyjścia pionowego):
QUARTER('2030/06/25'): 2 QUARTER('2030,06,25'): 2 QUARTER('2030:06:25'): 2 QUARTER('2030;06!25'): 2
Aktualna data
Możemy przekazać NOW()
jako argument datetime, aby użyć bieżącej daty:
SELECT
NOW(),
QUARTER(NOW());
Wynik:
+---------------------+----------------+ | NOW() | QUARTER(NOW()) | +---------------------+----------------+ | 2021-05-18 09:23:27 | 2 | +---------------------+----------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu QUARTER()
zwraca null
:
SELECT QUARTER('2030-65-78');
Wynik:
+-----------------------+ | QUARTER('2030-65-78') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.000 sec)
Sprawdź ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2030-65-78' | +---------+------+----------------------------------------+
Brakujący argument
Wywołanie QUARTER()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT QUARTER();
Wynik:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
I kolejny przykład:
SELECT QUARTER('2030-12-10', '2031-12-10');
Wynik:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2031-12-10')' at line 1