MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak działa QUARTER() w MariaDB

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. COUNT() Funkcja w MariaDB

  2. MariaDB CURRENT_TIMESTAMP() Objaśnienie

  3. Jak naprawić błąd przekroczenia limitu czasu oczekiwania na blokadę w MySQL?

  4. Najczęstsze problemy z MHA i sposoby ich rozwiązywania

  5. MariaDB Z WYJĄTKIEM Operatora wyjaśniono