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

Jak DAYOFWEEK() działa w MariaDB

W MariaDB, DAYOFWEEK() to wbudowana funkcja daty i czasu, która zwraca dzień tygodnia od podanej daty.

Przyjmuje jeden argument, czyli datę, z której chcesz wyodrębnić dzień tygodnia.

Zwraca dzień jako liczbę. Numeracja indeksów jest zgodna ze standardem ODBC (1 =Niedziela, 2 =poniedziałek itd.). To jest w przeciwieństwie do WEEKDAY() , gdzie 0 =poniedziałek, 1 =wtorek itd.

Składnia

Składnia wygląda tak:

DAYOFWEEK(date)

Gdzie date to data, z której należy uzyskać dzień.

Przykład

Oto przykład:

SELECT DAYOFWEEK('2030-01-25');

Wynik:

+-------------------------+
| DAYOFWEEK('2030-01-25') |
+-------------------------+
|                       6 |
+-------------------------+

W porównaniu z nazwą dnia

Oto kolejny, obok DAYNAME() aby zwrócić nazwę dnia:

SELECT 
    DAYOFWEEK('2030-01-20'),
    DAYNAME('2030-01-20');

Wynik:

+-------------------------+-----------------------+
| DAYOFWEEK('2030-01-20') | DAYNAME('2030-01-20') |
+-------------------------+-----------------------+
|                       1 | Sunday                |
+-------------------------+-----------------------+

Jak wspomniano, numeracja indeksów zaczyna się od 1 w niedzielę.

Oto sobota:

SELECT 
    DAYOFWEEK('2030-01-19'),
    DAYNAME('2030-01-19');

Wynik:

+-------------------------+-----------------------+
| DAYOFWEEK('2030-01-19') | DAYNAME('2030-01-19') |
+-------------------------+-----------------------+
|                       7 | Saturday              |
+-------------------------+-----------------------+

Wartości daty i godziny

Działa również z wartościami daty i godziny:

SELECT DAYOFWEEK('2030-01-24 10:30:45');

Wynik:

+----------------------------------+
| DAYOFWEEK('2030-01-24 10:30:45') |
+----------------------------------+
|                                5 |
+----------------------------------+

Zero dni

Zero dni daje wynik null .

Przykład:

SELECT DAYOFWEEK('2030-00-00');

Wynik:

+-------------------------+
| DAYOFWEEK('2030-00-00') |
+-------------------------+
|                    NULL |
+-------------------------+

Daty numeryczne

Możliwe jest również przekazywanie dat jako liczby, o ile ma to sens jako data.

Przykład

SELECT DAYOFWEEK(20300125);

Wynik:

+---------------------+
| DAYOFWEEK(20300125) |
+---------------------+
|                   6 |
+---------------------+

Lub nawet następujący (który używa dwucyfrowego roku):

SELECT DAYOFWEEK(300125);

Wynik:

+-------------------+
| DAYOFWEEK(300125) |
+-------------------+
|                 6 |
+-------------------+

Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część dnia do nieprawidłowego dnia:

SELECT DAYOFWEEK(20300135);

Wynik:

+---------------------+
| DAYOFWEEK(20300135) |
+---------------------+
|                NULL |
+---------------------+

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 
    DAYOFWEEK('2030/01/25'),
    DAYOFWEEK('2030,01,25'),
    DAYOFWEEK('2030:01:25'),
    DAYOFWEEK('2030;01!25');

Wynik (przy użyciu wyjścia pionowego):

DAYOFWEEK('2030/01/25'): 6
DAYOFWEEK('2030,01,25'): 6
DAYOFWEEK('2030:01:25'): 6
DAYOFWEEK('2030;01!25'): 6

Aktualna data

Możemy przekazać NOW() jako argument daty, aby użyć bieżącej daty:

SELECT 
    NOW(),
    DAYOFWEEK(NOW());

Wynik:

+---------------------+------------------+
| NOW()               | DAYOFWEEK(NOW()) |
+---------------------+------------------+
| 2021-05-15 09:17:44 |                7 |
+---------------------+------------------+

Nieprawidłowe argumenty

Po przekazaniu nieprawidłowego argumentu DAYOFWEEK() zwraca null :

SELECT DAYOFWEEK('Homer');

Wynik:

+--------------------+
| DAYOFWEEK('Homer') |
+--------------------+
|               NULL |
+--------------------+

Brakujący argument

Wywołanie DAYOFWEEK() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT DAYOFWEEK();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFWEEK'

I kolejny przykład:

SELECT DAYOFWEEK('2030-01-25', '2045-05-08');

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFWEEK'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zarządzać MariaDB 10.3 za pomocą ClusterControl

  2. Jak działa dźwięk w MariaDB

  3. Jak działa RTRIM() w MariaDB

  4. Jak CAST() działa w MariaDB

  5. Najlepsze narzędzia Open Source do migracji MySQL i MariaDB